1

アンパサンド()を含むレコードは&MySQL(PHP経由で接続)によって返されませんが、同じクエリが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

4

1 に答える 1

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";

これはあなたのために働きますか?

于 2012-05-21T14:54:40.490 に答える