0
私のデータベースでページsearch.phpから検索するためにユーザーから名前を取得しています。私は名前に単一引用符( ')またはバックスラッシュ(\
)を渡すときmysql selectクエリでエラーが発生しました
<?php
mysql_connect("localhost","root","");
mysql_select_db("amdsvcjdsvhck");
$re=$_GET['text'];
$sql="select sdf from contact where zip = '$re'";
$ess=mysql_query($sql);
$num=mysql_num_rows($ess);
for($i=0;$i<$num;$i++)
{$fow=mysql_fetch_assoc($ess);
echo '<div>'.$fow['zip'].'</div>' ;
}
?>
今、このページにエラーを与えています。
あなたが受け入れ答えとしてそれをマークすることができ、それはあなた –
のために働いていた場合、オーケー...........あなたはこのエラーを得た –
理由は、文字 'でありますMySQLクエリで文字列を終了します。だから、 'name = 'John O'Connor'という名前の連絡先からのアドレスを選択するようなクエリでは、MySQLはJohn Oという名前の人を探す必要があると考えています。それは一重引用符を超えて見ていない。そして、そのクエリで 'Connor'を見ると文字列がすでに終わってしまっていたのでしょうか?そのため、mysql_real_escape_string関数を使用して、文字列区切り文字ではない単一引用符をエスケープする必要があります。 – Daan