※ ChatGPTを利用し、要約された質問です(原文:MySQLへの特殊文字の挿入について)
MySQLへの特殊文字の挿入について
このQ&Aのポイント
MySQLへのデータ挿入時に特殊文字を挿入する方法やエラーの解決方法についてご教授ください。
MySQLへのデータ挿入時に特殊文字を使う際に発生するエラー「?が1に変換される問題」への解決策をお知らせください。
MySQLへのデータ挿入時に特殊文字を利用する際に生じるエラーについての解決方法を教えてください。
こんばんは。今MySQLへのデータの挿入時に特殊文字を挿入することが出来ないエラーに悩まされています。初心者で大変申し訳ございませんが、色々と調べてみたのですがどうしても解決できなかった為、質問させて頂きました。お手数をおかけしますがご教授いただければ幸いです。
問題というのは、MySQLへのデータの挿入時の文字列に特殊文字が含まれていた場合、この場合文字列中に「?」が含まれていた場合にこの文字列をinsertすると「?」が「1」に変換されてしまうのです。環境としてはPHPのPEARからの利用で、文字列はDBクラスのquoteメソッドでエスケープしてから挿入しております。文字列の文字コードはEUC-JPです。バックアップ用ファイル(CSV形式のテキストファイル)には正しく記録されておりますのでMySQLの仕様に関しての問題ではないかとは考えておりますが、どうしても解決できず困っております。お手数をおかけしますがよろしくお願いいたします。
お礼
ありがとうございます。なるほど。。?や&や!はプレイスホルダーとなるのですか。しかも教えて頂いた貴重なPEARのサイトを読んでみるとDBクラスのquoteメソッドがエスケープしてくれるのはシングルクォーテーションだけだという事をはじめて知りました。という事はやはりstr_replace等を利用して事前に変換するしかないということですね。プレイスホルダーを利用した考えも大変参考になりました。とても助かりました。ありがとうございました。