2012-05-21 77 views
1

MySQL(通過PHP連接)不會返回包含與號(&)的記錄,但同一查詢在phpMyAdmin中正常工作。我不確定它是整理/字符集問題。下面是示例查詢:在PHP中使用'&'進行MySQL查詢會返回與phpMyAdmin不同的結果

SELECT distinct(pcs.shop_name) AS shopName 
FROM shops AS ps 
LEFT JOIN category_shop AS cs 
    ON ps.shop_id = cs.shop_id 
WHERE 1=1 
    AND (ps.shop_name LIKE '%P&G%') 
    AND ps.is_active!=2 
ORDER BY ps.shop_display_name ASC 

shop_name我試圖尋找是P&G

+0

什麼是數據庫,表和字段的編碼?您是否使用相同的編碼來連接來自PHP的連接? – Daan

+0

這是甚至在你的PHP代碼中使用的* exact *查詢嗎? –

+0

Daan,表格和shop_name字段的編碼是「latin1_swedish_ci」 –

回答

1

試試這個(我想你可能是使用GET如果你有符號的問題提交表單):你該字段值頁面上

$shop_name = urlencode('P&G'); 

(這意味着你打電話進行urlencode每個字段的值時,生成表單)。然後,GET完成後,只需執行:

$shop_name = mysql_real_escape_string($_GET['shop_name']); 
$query = "SELECT distinct(pcs.shop_name) as shopName 
    FROM shops AS ps 
    LEFT JOIN category_shop AS cs ON ps.shop_id = cs.shop_id 
    WHERE 1=1 
     AND (ps.shop_name LIKE '%{$shop_name}%') 
     AND ps.is_active!=2 
    ORDER BY ps.shop_display_name ASC"; 

這是否適合您?

相關問題