Php mysql\u fetch\u assoc无法访问类似的列名称
我的查询中有多个表Php mysql\u fetch\u assoc无法访问类似的列名称,php,mysql,Php,Mysql,我的查询中有多个表 $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(选择s.id作为sid
$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(选择s.id作为sid…
),但有没有更简单的方法?
对于e.x:如果您的两个表都有一个同名的列,那么您只能访问关联数组中的其中一个字段-键是字段的名称,因此第一个字段被第二个字段重写 正如您所说,快速修复方法是显式重命名字段,这样它们就不会发生冲突。虽然您可以通过使用
mysql\u fetch\u array
解决这个问题,这将为您提供所有字段,但您需要按索引号访问字段;因此,如果更改表结构,则需要重新编写代码
更好的方法是,如果可能的话,不要在不同的表中有两个名称相同的字段-如果它们被称为
reservationID
和userID
,您将完全避免这种情况。我尽量不重复使用字段名,除非它是外键。请不要对新代码使用mysql.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习。