mysql – テーブルに値を挿入するときに値に面白い四角い文字が追加される
質問
mySQLテーブルに値を挿入するPHPスクリプトがあります
INSERT INTO stories (title) VALUES('$_REQUEST[title]);
テーブルに入る前にリクエスト変数の値を確認しましたが、問題ありませんでした。
しかし、たとえば title=john をテーブルに追加すると、
次のようなものが得られます:title = "[][][][]john"
そして値を抽出すると、改行、次に john になります。
列をutf-8に設定し、スウェーデン語文字セットも試しました。
注記:phpMyAdmin コマンドラインから値を挿入するときにこのエラーが発生しません
解決
必要です {}
内部で使用される場合の配列表記の周囲 ""
.
$q="INSERT INTO stories(title) VALUES('{$_REQUEST['title']}')";
ところで、$_REQUEST 変数をチェックするときは、サニタイズされたバージョンを新しい変数に保存し、必ず次の変数でエスケープする方がよいでしょう。 real_escape_string()
他のヒント
あなたのデータベースに接続するたびに実行されなければならないSET NAMES <encoding>
クエリ。
非常に単純なルール。
<encoding>
はMySQLの方言であなたのHTMLページ・エンコーディングである(UTF-8用utf8
)
は、データベースの文字セットは、サーバ、およびクライアントをチェックする必要があります。
注それはスウェーデンの文字セットではないということ、それはスウェーデンの照合です。
所属していません StackOverflow