問題の説明:
PHP を使用して MySql データベース内のデータを変更し、追加、削除、変更を実行します (データベースは正しく接続できます)。
テスト後、コードは数値に対して通常の追加、削除、および変更操作のみを実行でき、数値以外の操作は無効です。
しかし、コース名に中国語を入力したい場合は、どのように変更すればよいでしょうか?
問題のあるコードは主に次のとおりです。
,$kkxq,$xs,$xf)"
コード (コードは正しい) は次のとおりです。
(全て推測です)
これは数値に対してのみ有効であるため、データベースに渡されるデータ型に問題があると推測されます。
ただし、var_dump($kcm) によって取得されるデータ型は文字列型です。
では、文字列変数をデータベースに渡すにはどうすればよいでしょうか?
テスト済み:
実現可能な解決策は、次のコード行の文字列変数に一重引用符を追加することです:
'$kcm'
,$kkxq,$xs, $xf)"
でもよく考えてみると、PHPでは変数はダブルクォーテーションでしか解析されないので、ちょっとややこしかったので、の違いを調べてみました。
一見の価値があります: http://www.jb51.net/article/21035.htm
このリンクから、いくつかの問題がわかりました。要約すると次のようになります。
1. 簡単な要約: 二重引用符で囲まれた変数は解析できますが、一重引用符は絶対文字列です。一重引用符と二重引用符はペアで使用する必要があります。
2. 一重引用符で囲まれたバックスラッシュ "" は直接出力され、二重引用符で囲まれたバックスラッシュはエスケープ文字として解析されます。
、PHP の複雑な変数は中括弧で囲まれており、構文アナライザーは を正しく分析できます。例:
。データベースに挿入される SQL ステートメントは、一重引用符を使用して文字列を定義します。
一重引用符を含む文字列をデータベースに挿入する場合は、エスケープ文字を使用します。
addslashes() 関数を使用します。この関数の機能は、指定された定義済み文字の前にバックスラッシュを追加することです。
逆勾配 () null
http://zh.wikipedia.org/wiki/SQL%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB
http://welcome6.blog.163.com/blog/static/189281346201001694237345/
Wiz Notes (Wiz) より
http://www.bkjia.com/PHPjc/761103.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/761103.html技術記事問題の説明: PHP を使用して MySql データベース内のデータを変更し、追加、削除、変更を実行します (データベースは正しく接続できます)。テスト後、コードは数値、非数値操作に対して通常の追加、削除、および変更操作のみを実行できます。 ...