我在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
”,它是空的,除了连接表上匹配的行。
有什么想法吗? 谢谢! 将
答案 0 :(得分:3)
罪魁祸首是将SELECT *与PHP结合起来。因为当你按名称(eventid)访问列时,输出中有两个 eventid字段(每个表一个),它错误地找到第二个字段(缺少右侧记录中的NULL字段)
要解决此问题,请在SELECT后明确指定所需的列。在任何情况下,在生产代码中使用SELECT *通常被认为是一种不好的做法。