- ベストアンサー
form の TEXT で " がはいると切れてしまう。
PHPからMySQLにデータを格納しようとしているのですが、 Form の TEXTで、たとえば 12" WHITE PAPER ROLL と入れると、"の後が切れてしまうのです。 何か設定があるのでしょうか? 格納は、SHIFT-JIS で書き込みを行っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#57710
回答No.3
phpにaddslashesという関数があります http://jp.php.net/manual/ja/function.addslashes.php これをinsert前に該当文字列に当てるとエスケープしてくれます。 ただし、SQLではシングルクォーテーションのエスケープは「\'」ではなく「''」なので、別途変換する必要があります。(str_replaceなどで) 当然、そのデータをフェッチしてくると変換されたままなので今度はstripslashesをかます必要があります。 http://jp.php.net/manual/ja/function.stripslashes.php (今度はstripslashes前に「''」を「\'」に変換する必要もあります)
その他の回答 (2)
- o_chi_chi
- ベストアンサー率45% (131/287)
回答No.2
ダブルクォーテーションまでが文字列と認識され それ以降が無視されているのではないかと思います。 エスケープ文字(バックスラッシュまたは円サイン) でエスケープすれば大丈夫だと思います。 12\" WHITE PAPER ROLL
noname#20378
回答No.1
SQLもPHPも扱ったことないので自信はありませんが SQLインジェクションとかいうやつではないでしょうか? http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html
お礼
ありがとうございます。 早速、試してみます。 また分からないことがありましたら、よろしくお願いします。