我们在主MySQL表(命名对象)中添加了两列,一列表示数量,一列表示单位ID。如果数量和/或单位未知,则这些列设置为 NULL。我们希望将此表与单位类型表联接在一起,以显示单位的名称(磅、页、克等)。当我在MYSQL的命令行客户端中运行选择时,它返回预期的结果。当我的 PHP 页面运行查询时,第一行显示来自联接错误端的值。示例:要连接的表是具有这些定义的对象和单位类型mysql> show create table objects;CREATE TABLE `objects` ( `objId` int NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, `description` varchar(250) DEFAULT NULL, `quantity` int DEFAULT NULL, `unitid` int DEFAULT NULL, `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `modify_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`objId`), KEY `unitid` (`unitid`), CONSTRAINT `objects_ibfk_1` FOREIGN KEY (`unitid`) REFERENCES `unittypes` (`unitId`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=4735 DEFAULT CHARSET=utf8和:mysql> show create table unittypes;CREATE TABLE `unittypes` ( `unitId` int NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `description` varchar(50) DEFAULT NULL, `create_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `modify_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`unitId`), UNIQUE KEY `name` (`name`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8示例行:Unittypes:+--------+------+--------------+-| unitId | name | description | +--------+------+--------------+-| 1 | Each | Each | Objects:+-------+---------------------------------------+-------------+----------+--------+| objId | NAME | description | quantity | unitid | +-------+---------------------------------------+-------------+----------+--------+| 1018 | UNKNOWN cables | NULL | NULL | NULL | | 3466 | UNKNOWN replies | NULL | NULL | NULL | 结果集有 3 行。单位类型没有匹配行时的示例:我使用连接语法得到相同的结果左连接单元类型 u on o.unitid = u.单元 id我希望相同的查询在两个示例中的行为方式相同。我本来会猜测命令行和PHP只是将字符串传递给mySQL进行处理,但显然我没有看到一些差异。PHP如何传递查询有什么奇怪的事情吗?MYsql是否无法正确处理通过该接口的连接;代码是否错误(无需连接即可工作)?
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
您有两个名为 的列。第二个将覆盖第一个。name
您应将它们别名为具有不同的名称。select `o`.`name` as `o_name` ...
在你的情况下,只有第一行受到影响的原因是因为你用来获取它,但随后又得到其他行(并且有效,因为它完全忽略了列名)fetch_assoc
fetch_row
fetch_row
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消