もちろん、変数をデータベースにポストするときは、mysql_real_escape_string. このようにして、特殊文字がデータベースに正しく入ります。
この変数をデータベースから読み取るとき、次のように mysql_real_escape_string を再度使用しますstripslashes。
$var = stripslashes(mysql_real_escape_string($record['rowname']));
そうしないと、引用符の前にスラッシュが表示されます。
上記のこれを使用$varしてエコーしたいecho "$var"場合は、すでに削除されてエスケープされているため、単純にできますよね?
stripslashesさらに、変数に+を使用mysql_real_escape_stringした場合、この同じ変数をデータベースに再度 POST するだけでmysql_real_escape_string十分ですか? stripslashesまたは、この変数を再度使用する必要がありますか?
要約:
これがどのように機能するかを知っているように:
mysql_real_escapemysqlでデータを使用するときはいつでも使用してください。変数をデータベースに投稿するのと同じように、変数を介してクエリを読み取るとき。stripslashesエスケープされた変数をエコーアウトするときに使用します。stripslashes変数をデータベースに再度投稿してエスケープしたい場合は、再度ストリップスラッシュする必要はありません。
恋しいhtmlspecialcharsですか?
編集
それで、これはすべて間違っていますか?
while( $record=mysql_fetch_array($result) )
{
$custid=mysql_real_escape_string($record['custid']);
$custsurname=mysql_real_escape_string($record['custsurname']);
$custmidname=mysql_real_escape_string($record['custmidname']);
$custforename=mysql_real_escape_string($record['custforename']);
$custcountry=stripslashes(mysql_real_escape_string($record['custcountry'])); }