- 締切済み
MySQLに画像を保存したい
閲覧、ありがとうございます。 MySQLに画像を保存しようとして苦戦しています。 multipart/form-dataオプションをつけてpostし、phpでMySQLに入れようとしています。 header("Content-Type: image/jpeg"); $data = file_get_contents($_FILES['photo']['tmp_name']); echo $data; とするとちゃんと画像が表示できるのですが、 $query = mysql_query("insert into img_table (img_field) values $data"); とすると You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' … と怒られてしまいます。 ためしにphpMyAdminから同じデータをアップロードすると$dataの部分が0xff...となっております。 文字コードの問題も考え、addslashesなどつけているのですがやはりアップロードできません。 画像をMySQLに保存するにはどのようにしたらよろしいでしょうか? よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10359)
addslashesはSQLインジェクションの原因となるので使ってはいけない関数です。存在を忘れましょう。mysql_real_escape_string を使います。 $data=mysql_real_escape_string($data); mysql_query("insert into img_table (img_field) values ('$data')"); でどうですか?
補足
ご回答、ありがとうございます。 > addslashesはSQLインジェクションの原因となるので使ってはいけない関数です。 ですよね。藁をもすがる気持ちで試してみました。 >$data=mysql_real_escape_string($data); >mysql_query("insert into img_table (img_field) values ('$data')"); >でどうですか? ありがとうございます。 早速試したのですが、syntax to use near ''の''部分の文章が\付きになったものの同様にアップロードできませんでした。