アプリ版:「スタンプのみでお礼する」機能のリリースについて

またまた文字化けの件で質問です。
Shift_Jisで書いたPHPでMysqlのデータベースにupdateしています。

$sql .= "UPDATE abc SET";
$sql .= " a= '".addslashes($a)."'";

のようなSQL文です。

このような場合
フォームから「表示」を送信した場合は
「update abc SET a='表\示'」となり正常に更新されます。
しかし最後に5Cの文字ある場合
「update abc SET a='テーブル表\'」となり
'(シングルクォーテーション)がエスケープされて
エラーになってしまいます。

そのような場合はどうしたらよいのでしょうか?
よろしくお願いします。

A 回答 (2件)

内部エンコーディングがSJISになっているからです。



PHPは内部エンコーディングにSJISを選択した場合、2バイト文字の処理の際にこうなります。

内部エンコーディングをEUC-JP等に変更する必要があります。php.iniの設定で文字コード変換を自動で行う方法もあります。

参考URL:http://www.php.net/manual/ja/ref.mbstring.php
    • good
    • 0
この回答へのお礼

ありがとうございます。
なかなか難しいです。
いろいろやってみます。

お礼日時:2005/06/08 08:58

どーしてもSHIFT_JISで書きたいならば、


stripslashes()とかつかって、ちょっとトリッキーな書き方すれば対応可能
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!