-2

重複の可能性:
PHP で SQL クエリ内の単一引用符を処理するにはどうすればよいですか?

次のコードを書いて、mysql テーブルからデータをフェッチしました。

$clg=$row['text'];
$query1 = "SELECT * FROM user WHERE text='$clg'";
$result1 = mysql_query($query1,$con) or die(mysql_error());
$count=mysql_num_rows($result1);
echo $count;

しかし、テキスト フィールドには $query1 の単一引用符を閉じる単一引用符 (') があるため、mysql 構文エラーが発生します。どうすればこれを修正できますか?

4

2 に答える 2

1
$clg=$row['text'];
$query1 = "SELECT * FROM user WHERE text='" . mysql_real_escape_string($clg) . "'";
$result1 = mysql_query($query1,$con) or die(mysql_error());
$count=mysql_num_rows($result1);
echo $count;

ただし、mysql_*関数ファミリはまもなく非推奨になることを知っておく必要があります。php.netのWebサイトにある赤いボックスをお読みください

于 2012-09-09T19:19:35.350 に答える
-1
<?php
function escape($string) {
    if(get_magic_quotes_gpc()) $string = stripslashes($string);
    return mysql_real_escape_string($string);
}

この関数を書いて呼び出す

escape($clg);

すべての mysql 構文エラーと sql インジェクションを防ぐために。

于 2012-09-09T19:10:01.747 に答える