- ベストアンサー
PHPデータベースから画像出力
- PHPの学習中に、BLOB形式でMYSQLに画像をアップロードした後、データを取得できません。エラーメッセージにはmysql_fetch_object(): supplied argument is not a valid MySQL result resourceが表示されます。
- 提供されたスクリプトを確認しましたが、SQL文が間違っている可能性があります。また、表示しようとするスクリプトもあります。
- 解決策が分からないため、詳細な情報やコードの修正が必要です。ご教授いただけると幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> string(31) "select * from stddoc where(id=)" id の値が入っていないのでSQL構文エラーですね $sql = "select * from stddoc where id = " . $_GET['id']; die("query failed"); を消せば mysql_error() でその旨のメッセージが出ると思います。 fetch_row は結果を添字配列として返す関数です。 $row[0] fetch_array は連想配列として返す関数です。 $row['id'] fetch_object はオブジェクトとして返す関数です。 $row->id マニュアルのご一読を。
その他の回答 (3)
- tany180sx
- ベストアンサー率63% (239/379)
テーブル名が間違えているとか・・ fetchの後に echo mysql_error(); としてみてはどうでしょう。 あと mysql_fetch_row ですね。
補足
ご返答ありがとうございます! テーブルなどに関しては間違いはありませんでした。 ずっとスクリプトを見ているここだけは間違いありません(^_^; あっそうか一つだけだから mysql_fetch_rowになるのですねご指摘ありがとうございます! またecho mysql_error()をいれてもなにも出ませんでした。。 <?php //MySQLサーバに接続 if (!$int_connect = @mysql_connect('localhost','aaa','password')) { die("can't connect mysql server."); } //データベースに接続 if (!@mysql_select_db("test", $int_connect)) { die("can't use selected database."); } $sql = "select * from stddoc where(id=$FileID)"; //ここらへんをまた変えたのですがだめでした。 //string(31) "select * from stddoc where(id=)" query failed //としか出ませんでした。。 var_dump($sql); $result = mysql_query($sql); if (!$result) { die("query failed"); } $row = mysql_fetch_row($result); echo mysql_error(); //var_dump($row); //echo $row[3]; ?>
- asuncion
- ベストアンサー率33% (2127/6289)
> $sql = "select * from stddoc where(id=$_GET[id])"; > var_dump($sql); var_dump()でSQL文の内容を確認したとき、 where句、つまり"id="の後ろには正しくセットしてありますか?
補足
ご返答ありがとうございます! where句に関しては正しくセットしてると思います。 ただしまだまだ初心者で勉強をしている最中のため、正直よく分かってないかもしれません、、私がしようとしているのはid(キー)からデータを ひっぱってきてその中にある配列三番目(バイナリ本体)を出力したいと思っております。力足らずの返答で大変申し訳ございません。
- ranuwe
- ベストアンサー率33% (7/21)
echoする前に前に画像タイプに合わせて header("Content-type: image/gif"); や header("Content-type: image/jpeg"); を指定したらどうでしょう? echo1.phpは <?php から ?> まででいいと思いますよ。 画像そのものを返すはずなので、HTMLタグは要りません。
補足
さっそくのご連絡ありがとうございます! echo1.phpに関しては<html>タグは消してみました。 ただし、まだ$sql文?もしくは$result文がおかしいのか表示されません。 依然Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource inのエラーが出てしまいます。 header("Content-type: image/jpeg");こちらに関してもさっそく利用をさせてもらいました。
補足
たびたびのご返答大変感謝しております。 さっそく die("query failed");を消してみました また$sql文も使わさせて頂きましたが そしたら下記のwarningが表示されました。べたうちで申し訳ございません。。 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/home/hot/www/htdocs/echo1.php on line 17 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 '' at line 1 またfetch_row, array, objectについて丁寧にご説明して頂きまして ありがとうございます!大変勉強になりました。 今日一日中この作業をしており、また全然進まないことに悔しい思いをしておりましたが一つ勉強になってうれしいです!