[英]Does PHP MySQL not support IN?
好的,我有一個相當長的查詢,只有在添加一個IN語句時才會失敗。 以下查詢可直接在MySQL控制台中很好地工作,但在PHP中完成時不返回任何內容。
$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_select_db('database_name', $db);
這應該在調用mysql_connect()
函數之后執行。
http://uk.php.net/mysql_select_db
它將在成功時提供對錯信息,因此您可以使用以下內容確保連接成功。
if( ! mysql_select_db('database_name', $db) ) {
die('failed to select database');
}
除上述內容外,您還可以修改以下行
$result = mysql_query($query);
如下所示。 這將向您顯示返回的任何錯誤,並且在您的情況下顯示No database selected
錯誤
$result = mysql_query($query) or die(mysql_error());
從http://php.net/manual/en/function.mysql-query.php
The query string should not end with a semicolon.
嘗試刪除它,看看是否可行。
最終導致發布數據出現問題。 我在發布'AL',FL'的單引號。 顯然,在發布時對它們進行了奇怪的編碼。 我假設某種安全功能。 我從帖子中刪除了報價,而是將其添加到服務器端PHp,並且可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.