我們在主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 關注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消