0

文字列である title という列を持つ MySQL テーブルがあります。

ただし、文字列に一重引用符が含まれている場合 (例: "John's group")、SQL は失敗します。

次のphpコードを使用してテーブルを検索しています:

$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . $title . "'"));

$title には検索文字列が含まれています。

ここで何をすべきかアドバイスをくれる人はいますか?

編集:SQLで2つの一重引用符が機能することを発見しました-ただし、phpでこれを行う方法はありますか?

4

4 に答える 4

3

titleクエリで使用する前に、your をエスケープする必要があります。

$title = mysql_real_escape_string($title)
于 2012-09-01T10:21:04.197 に答える
1

クエリ全体で文字列をエスケープするために、文字列を '' に置き換えてみてください。

$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . str_replace($title, "'", "''") . "'"));
于 2012-09-01T10:19:44.353 に答える
0

mysql_escape_stringを使用できます

于 2012-09-01T10:21:57.130 に答える
0

これを試して...

$pageID = mysql_fetch_array(mysql_query('SELECT pageID FROM `mytable` WHERE title="' . $title . '"'));
于 2012-09-01T10:22:29.157 に答える