###前提・実現したいこと
初心者です。
android端末から、外部サーバのDBに画像を保存しようとしています。
android上でbitmapをBase64のStringにエンコードしJSONに詰め、
外部サーバ上のPHPで受け取った後にバイナリに変換、
MySQLで、TABLEに既に存在する行のMEDIUMBLOB型カラムをUPDATEしたいと考えていますがうまくゆきません。
$mysqli->affected_rows
でクエリの結果を確認してみると、-1が返されます。
MySQLのMEDIUMBLOB型カラムにはバイナリを投げればよいとの認識なのですが、以下のコードではそれが実現できていないのでしょうか?
宜しくお願いします。
###該当のソースコード
(PHP)
//androidからPOSTされたJSONを受け取る
$json_string = file_get_contents('php://input');
//連想配列型にデコード
$obj = json_decode($json_string,true);
//Base64型にエンコードされた画像データを取り出す
$img = $obj['strBase64'];
//バイナリデータに戻す
$fileData = base64_decode($img);
//略
//画像の投稿
$mysqli->query("UPDATE xxx SET image = $fileData WHERE name = 'xxx'");
//略
###試したこと
MySQLでのバイナリデータ登録には16進法記述への変換が必要、との記述を見つけたので、
$hexFileData = bin2hex($fileData);
のようにして変換した値をクエリに使用してみましたが、こちらもうまくゆきませんでした。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/28 01:37
2017/02/28 02:09
2017/02/28 05:45
2017/03/02 08:12
2017/03/02 08:25
2017/03/03 03:22
2017/03/03 03:54