好吧,我有一個相當長的查詢,只有當我添加一個IN語句時失敗。以下查詢直接在MySQL控制檯中工作良好,但在PHP中完成時不返回任何內容。PHP MySQL不支持IN嗎?
$db = mysql_connect('localhost', 'something', 'somepassword');
$query = "SELECT *
FROM alt_table f
INNER JOIN alt_fac_table_c cl ON (f.id = cl.alt_table2_ida)
INNER JOIN alt_table c ON (cl.alt_table_idb = c.id)
LEFT OUTER JOIN alt_table_contacts_c con ON (f.id = con.alt_table_ida)
LEFT OUTER JOIN contacts cc ON (con.alt_table_idb = cc.id)
WHERE c.name = 'myname'
AND f.state IN ('AL','FL') ORDER BY fname;";
$result = mysql_query($query);
問題不在於與數據庫連接,而在於與查詢本身無關。很明顯,我已經重新命名了一些東西,但查詢是一樣的。在PHP中,它不會返回任何內容(沒有錯誤,沒有任何內容),但在SSH /控制檯中它將返回我需要的所有行。如果我刪除「AND f.state IN('AL','FL')ORDER BY fname;」;「查詢的作品,但給我的每一個國家。因此,最大的問題是... PHP是否有IN語句有問題嗎?
UPDATE FIX 它最終成爲了發佈數據的問題,我發佈了'AL',FL'的單引號,它顯然是在發佈後奇怪地編碼它們。某種形式的安全功能。我把帖出來後,並加入它,它的服務器端PHP替代和它的作品。
無論您使用哪種編程語言與MySQL進行交互,MySQL都是MySQL。 – BoltClock
討厭是粗魯的,但根本無濟於事,因爲當在shell中直接查詢數據庫時,這個確切的語句可以工作。 – Tyler