0
這很奇怪。我使用PHP 5中的MySQLi,並執行以下查詢時,我結束了一個錯誤在我的httpd日誌類似如下MySQL未知列錯誤,但結果看起來不錯,並且查詢在phpMyAdmin中有效
[error] [client 192.168.0.1] Unknown column 'memberid' in 'where clause', referer: http://www.example.com/app/add-device [error] [client 192.168.0.1] fetch_row[0] failed, referer: http://localhost/app/add-device
查詢本身
$this->db->query(' SELECT `members`.`id`, `members_timezones`.`timezone`, `members`.`memberid` FROM `members` RIGHT JOIN `members_timezones` ON `members_timezones`.`memberid` = `members`.`id` WHERE `members`.`systemid` = ' . SYSTEM_ID . ' AND `members`.`memberid` = ' . intval($this->user->uid) . ' AND `members`.`user` IS NULL LIMIT 1 ');
只是爲了澄清,該上面的查詢確實會對預期的結果做出響應,但是我的httpd日誌被垃圾郵件發送,並聲明該列在其存在時不存在。它還聲稱'fetch'沒有返回任何東西 - 它也是如此。
我想從我的系統中消除這個錯誤的錯誤。
----- ------ ADDED
查詢結果
id timezone memberid 12 America/New_York 2
查詢結果(講解)
id select_type table partitions type possible_keys key key_len ref rows Extra 1 SIMPLE members_timezones NULL ALL NULL NULL NULL NULL 2 1 SIMPLE members NULL eq_ref PRIMARY PRIMARY 4 linked24.members_timezones.memberid 1 Using where
成員
Column Type Comment id int(11) Auto Increment details text NULL user varchar(35) NULL pass varchar(512) NULL entered timestamp NULL [0000-00-00 00:00:00] updated timestamp NULL pass_key varchar(32) NULL systemid int(11) memberid int(11)
members_timezones
Column Type Comment id int(11) Auto Increment memberid int(11) timezone varchar(80) [UTC]
您確定這是導致這些錯誤的腳本或查詢嗎? – Barmar
「SYSTEM_ID」是否始終爲數字? –
代碼看起來不錯,所以我會檢查列名,因爲名稱區分大小寫。 – jeff