gpt4 book ai didi

php - mysql_fetch_assoc 无法访问相似的列名

转载 作者:行者123 更新时间:2023-11-29 06:59:24 25 4
gpt4 key购买 nike

我的查询中有多个表

$query = mysql_query("SELECT * FROM reservation r, users u ...")

while( $fetch = mysql_fetch_assoc($query)){
if($fetch['u.id'] == $fetch['r.id'])
...

问题是我在表上有相同的列名,当我尝试比较预订的 ID 和用户的 ID 时,我只得到用户的 ID!!!

我可以用列名替换“*”并用 AS (SELECT s.id as sid ...) 更改它们的名称,但是有没有更简单的方法?例如:

最佳答案

如果你的两个表都有同名的列,那么你只能访问关联数组中的其中一个字段 - 键是字段的名称,所以第一个是被第二个覆盖。

如您所说,快速解决方法是显式重命名字段,以免它们发生冲突。虽然您可以通过使用 mysql_fetch_array 来解决它 - 这将为您提供所有字段,但您需要通过索引号访问字段;因此,如果您更改表结构,则需要重新编写代码。

更好的方法是在不同的表中不要有两个同名的字段,如果可能的话 - 如果它们被称为 reservationIDuserID,你会完全避免这种情况。我尽量不重复使用字段名,除非它是外键。

关于php - mysql_fetch_assoc 无法访问相似的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com