みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPとMySQLを使い、画像データベースを構築しています。

PHPとMySQLを使い、画像データベースを構築しています。
以下までできたのですが、SQL syntaxエラーが発生してしまい、UP出来ませんでした。
画像を指定しない場合は、成功します。
<form method="post" action="addinfo.php" enctype="multipart/form-data">
Place Name(*)<br>
<input type="text" size="50" maxlength="100" name="place_name"><br>
Address(*)<br>
<input type="text" size="50" maxlength="100" name="address"><br>
Pictures<br>
<input type="file" size="50" name="picture1"><br>
<input type="file" size="50" name="picture2"><br>
<input type="file" size="50" name="picture3"><br>
<input type="reset" value="Reset" name ="reset">
<input type="submit" value="Submit" name="submit">
</form>

<?php
if ($_POST["submit"] != "") {
// Connecting DB
require 'lib.php';

//img1
if ($_FILES["picture1"]["tmp_name"] != NULL) {
$fp = fopen($_FILES["picture1"]["tmp_name"], "rb");
if (!$fp) {
print("Cannot open the uploaded file <BR>\n");
exit;
}
$img1 = fread($fp, filesize($_FILES["picture1"]["tmp_name"]));
fclose($fp);
}
-----------------------------------------------------------
img2, img3についての処理もimg1と同じなので、文字数の関係で省略します
-----------------------------------------------------------

// Insert Query
$sql = "INSERT INTO places
(place_name, address, `picture1`, `picture2`, `picture3`)
VALUES('{$_POST["place_name"]}','{$_POST["address"]}',
'{$img1}', '{$img2}', '{$img3}')
";

$result = mysql_query($sql);
if (!$result) {
print("QUERRY ERROR<BR>\n");
print(mysql_errno() . ": " . mysql_error() . "<BR>\n");
exit;
}

echo "UPLOAD SUCCESSFULL ";

ご教授お願いいたします

投稿日時 - 2010-10-24 17:10:34

QNo.6272350

すぐに回答ほしいです

質問者が選んだベストアンサー

picture1, picture2, picture3
は、画像ということなので、バイナリデータであると推察します。

バイナリデータのデータベースへの登録は、1つのINSERT文だけでは出来ません。
SQL文というのは、文字列だけで記述する必要があります。

おそらく、テーブルにBLOBのカラムを設けて、そこへ登録を行うことになります。

やり方は、参考URLなどを参照してください。「php blob」で検索して、最初に表示されたページです。

参考URL:http://www.doyouphp.jp/sample/sample_ora_blob.shtml

投稿日時 - 2010-10-24 21:17:51

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

いあ、それ以前に、外部から来たものを SQL に直に突っ込むなよ。
構文エラーの原因はそれだけ。
バイナリだろうが、文字列だろうが本質に変わりはない、扱う側の問題だ。

余談。
サイズが多分でかいから、アップが成功するとは限らない、とか、アップしてくるのは、良心的なやつらばかりじゃないとか色々。

投稿日時 - 2010-11-03 21:31:41

あなたにオススメの質問