[PHP-users 33578] mysql_queryでの検索について

matsubara @ refra.co.jp matsubara @ refra.co.jp
2008年 6月 6日 (金) 20:28:52 JST


こんばんは。
1点、質問させて下さい。


-------------------------
$url[0] = "http://www.zzz.com/";
$url[1] = "http://www.yyy.com/?a=b";
$url[2] = "http://www.xxx.com/?a=b&b=5";
$sql = "SELECT * FROM database WHERE `url` = '".$url[2]."'";
$request = mysql_query($sql) or die ("error");
$request_row = mysql_num_rows($request);
echo "実行したSQL:<br>".$sql."<br>";
if ($request_row >= 1) ( echo "該当有"; } else { echo "該当無"; }
--------------------------
というPHPプログラムがあるのですが、
sqlで検索するurlで、$url[0]、$url[1]での検索は該当有となり、問題ないのですが、
$url[2]で検索すると、該当無となり、検索にひっかかりません。

原因は、文字列に半角の&があるからだと思うのですが、mysql_queryで実行する
検索文字列に含まれている「&」が含まれている場合、どの様にすれば、
うまく検索されるようになるのでしょうか?


上記を実行すると、
--------------------------
実行したSQL:
SELECT * FROM database WHERE `url` = 'http://www.xxx.com/?a=b&b=5'
該当無
--------------------------
と表示されますが、phpMyAdminの「サーバ localhost 上でクエリを実行する」で
SELECT * FROM database WHERE `url` = 'http://www.xxx.com/?a=b&b=5'
を実行すると、問題なく該当・表示されます。


実行環境は、以下の通りです。
PHP 5.2.6
phpMyAdmin - 2.10.3
MySQL 5.0.45
FreeBSD 6.4


PHP-users メーリングリストの案内