PHP:SQL为非空字段返回空单元格

时间:2011-01-10 21:02:42

标签: php sql join left-join

我在mySQL数据库上调用一个简单的JOIN SQL。从PHP脚本调用的确切查询是:

SELECT * 
FROM weighteventtest 
LEFT JOIN commenttest ON weighteventtest.eventid=commenttest.eventid 
ORDER BY weighteventtest.eventid DESC 

当我直接在phpMyAdmin中运行sql查询时,我得到一个包含所有值的正常结果集。但是当通过PHP调用脚本时,“eventid”字段为空或几乎所有行都为null。当我回显每行的值时,所有字段都有一个值,除了主键“eventid”,它是空的,除了连接表上匹配的行。

有什么想法吗? 谢谢! 将

1 个答案:

答案 0 :(得分:3)

罪魁祸首是将SELECT *与PHP结合起来。因为当你按名称(eventid)访问列时,输出中有两个 eventid字段(每个表一个),它错误地找到第二个字段(缺少右侧记录中的NULL字段)

要解决此问题,请在SELECT后明确指定所需的列。在任何情况下,在生产代码中使用SELECT *通常被认为是一种不好的做法。