• 締切済み

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に保存するにはどのようにしたらよろしいでしょうか? よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

addslashesはSQLインジェクションの原因となるので使ってはいけない関数です。存在を忘れましょう。mysql_real_escape_string を使います。 $data=mysql_real_escape_string($data); mysql_query("insert into img_table (img_field) values ('$data')"); でどうですか?

tetsu-jin
質問者

補足

ご回答、ありがとうございます。 > addslashesはSQLインジェクションの原因となるので使ってはいけない関数です。 ですよね。藁をもすがる気持ちで試してみました。 >$data=mysql_real_escape_string($data); >mysql_query("insert into img_table (img_field) values ('$data')"); >でどうですか? ありがとうございます。 早速試したのですが、syntax to use near ''の''部分の文章が\付きになったものの同様にアップロードできませんでした。

関連するQ&A

専門家に質問してみよう