もちろん、変数をデータベースにポストするときは、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_escape
mysqlでデータを使用するときはいつでも使用してください。変数をデータベースに投稿するのと同じように、変数を介してクエリを読み取るとき。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'])); }