mysql – テーブルに値を挿入するときに値に面白い四角い文字が追加される

StackOverflow https://stackoverflow.com/questions/2829626

  •  26-09-2019
  •  | 
  •  

質問

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

は、データベースの文字セットは、サーバ、およびクライアントをチェックする必要があります。

注それはスウェーデンの文字セットではないということ、それはスウェーデンの照合です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top