私はjsonでエンコードされた文字列を圧縮してmysqlに格納しようとしていましたが、 "予期しない"エラーが発生しています。php/mysql:gzcompress-ed文字列をテキストmysqlフィールドに挿入するには?
私はまた、このようにaddslashesを使用しようとしました:
addslashes(gzcompress(json_encode($mystring)));
そして
json_decode(gzuncompress(stripslashes($mystring)));
を表示するには、しかし、それは私が言及したエラーで、挿入に失敗しました。
gzcompressをblobとして保存する必要がありますが、mysqlのテキストフィールドに格納する方法があると思っていましたので、dbを使いこなす必要はありません。
PS:
Warning: Unexpected character in input: '\' (ASCII=92) state=1
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\x9C\xED}\x8Br\xDB...' for column 'field_text_value' at row 1.
addslashesの代わりにmysql_real_escape_stringを使用してください(この問題を修正するとは限りませんが、一般的には意味します)。 addslashesはキャラクタセットを認識しませんが、mysql_real_escape_stringは実際にデータベース接続を認識し、より正確にデータをエスケープできます。 addslashes()はPHPが一度もやったことのないコーダーを助けようとした多くのものの1つです。 – Corbin
Corbinにもお世話になりました。ところで、これをマイナスにした人は理由を説明してください。 – giorgio79
*リレーショナル*データベースに "大きな配列"を格納することはほとんど意味がありません。 完全なエラーメッセージではなく、むしろスタブで質問すると、「予期せぬ/」の方がより意味のないものになります。あなたが明示的にそれ以外のことを言わない限り、コードのどの部分がこの*スタブ* –