これに対する答えを何時間も検索しましたが、何も見つかりません...フォームから文字列をエスケープしましたが、一重引用符記号の前にスラッシュが追加されています。ただし、データベースに挿入すると、スラッシュは表示されません???
$db = new mysqli($host, $username, $password, $database);
$db->set_charset("utf8");
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$country = $_POST["country"];
$country = $db->escape_string($country);
注: 文字列が実際にここでエスケープされていることを確認しました。入力が「カナダ」の場合、echo $country の結果は正しい「カナダ」になります。
if ($db->query("INSERT into countries (country) VALUES ('$country')")) {
printf("%d Row inserted.\n", $db->affected_rows);
} else {
printf("Error: %s\n", $mysqli->sqlstate);
}
さて、データベーステーブルを見ると、レコードは'Canada'
スラッシュなしで表示されます???