• 締切済み

データベースへの 画像の保存()

PHP4→5に移行作業中です。 画像をデータベースに取り込む部分が正常に動作しなくなり作業が中断しています。曖昧な質問で申し訳ないのですがチェックすべき問題点としてはどのようなものがあげられるでしょうか? ひとつ気になった部分で、 下記の処理に問題はないでしょうか? $entry['NAME'] = Safe($_FILES['PICTURE']['name']); 旧環境 PHP4.3.11 MYSQL4.1.11 新環境 PHP5.2.5 MYSQL4.1.22 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

まずはどの処理でどんなエラーが出ているか調べた上で質問された方が速やかに回答が得られるものと思います。 エラーが出ていない設定になっていればすべてのエラーを表示させるように設定を変更させるのがよいでしょう。

関連する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 "; ご教授お願いいたします

    • ベストアンサー
    • MySQL
  • データベースを利用するためのテンプレート、スクリプト、CMS等

    現在MySQLとPHP,perl等を勉強しています。アクセスやエクセルで作成したデータベースをMySQLに移行し、そのデータをWEB経由で公開できたらと考えています。 移行の部分はMyPHPadminやODBC接続、あるいはNavicat等を利用することでうまくいきそうな気がします。ただ、Webからアクセスのところがいまいちピンときません。 PHPの場合であれば、例えばPEAR、あるいはsmartyというものを利用していくことで効率的に作業をすすめることができるかも知れないということは分かりました。 (そこらへんをPHPマンモス本や下記サイト等を参考に勉強しています。 http://itpro.nikkeibp.co.jp/members/NSW/oss/20031001/1/ http://www.atmarkit.co.jp/flinux/php4/php4_5/php4_3.html#3) ただ、上記サイトのように一生懸命スクリプトをいじるのではなく、もっと簡単にデーターベースを参照できる装置(データベースを利用することに特化したCMSやPHPスクリプト等)はないかと探しています。 現在WEBページを作る際はwikiとかzope,xoopsを利用し、ほとんどhtmlなんかを意識ぜずしかも短時間で実用的なサイトが作れます(しかもこれらCMSではデータ格納にMYSQL等を使用しています)。これらCMSのように、サーバ上にインストール→index.phpあたりをそのサーバ環境に合わせて修正→あとはブラウザ経由で作業即公開 というようなやり方はないものでしょうか。 あるいはこんなようなテンプレートとか。 http://www.templatemonster.jp/ 世の中のデータベースを利用したサイト作成者が、全部一からインターフェイスを作成しているとも思えなかったので。 漠然とした質問ですいません....

  • phpでデーターベース編集

    phpを独学し始めた初心者です。 よろしくお願いします。 以下のphpファイルを実行すると エラーが出ないにもかかわらず、 データーベースの表示で確認すると 『item_name』に『もも』という文字が入っていません。 その他はphp通りデーターが挿入されます。 なぜでしょうか? (環境)------------------------------------- phpエディターでphpファイルをつくり phpMyAdminでデーターベースを編集してます。 ローカルホストです。 --------------------------------------------- <?php mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('mydb') or die(mysql_error()); mysql_query('SET NAMES UTF8'); mysql_query ('INSERT INTO my_items SET maker_id=1, item_name="もも", price=480, keyword="缶詰,ピンク,甘い", sales=0, created="2010-10-10", modified="2012-05-05"') or die(mysql_error()); echo 'データー挿入完了'; ?> どうぞよろしくお願いします。

  • PHPデータベース・テーブルの移行

    PHPとMySQLを使ってサイト構築しています。 MySQLのデータベース「group_color」にはテーブル「pink」とテーブル「blue」があります。 サイトでログインしている会員ユーザーの情報が「pink」に入っていてユーザーが ”ブルーグループに変更する”というボタンを押すと、テーブルpinkに入っている情報がテーブルblueに移行するようにしたいのですが、PHPの表記はどのようになりますか? 「ログインしている会員の情報」を移行させたいです。 テーブルのフィールドは ・id ・name ・birthday となっています。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • MySQLに保存した画像を表示したい

    <環境> PHP:4.3.8 MySQL:4.0.16 はじめまして、PHPを始めて駆け出しの者です。 MySQLに保存した画像を表示したいのですが なかなかうまくいきません。 なにかきっかけとなればと思い、書き込みをします。 どうぞご教授ください。 MySQLに画像を保存する事もやっとの事で出来たのですが、 ちゃんと保存されているか確認するため画像を表示してみよう と試みたのですが、またそこで壁にぶち当たってしまいました。 ネットの各所で検索し調べ、カタチまでは出来たのですが 肝心の画像が「×(バツ印)」になっていて表示出来ません。 +++img_upload.php+++ <?php if ($_POST["submit"]!=""){ if ($_POST["file_name"]=="none"){ print("ファイル名が入力されていません。<BR>\n"); exit; } $file_name = $_POST["file_name"]; if ($_FILES["upfile"]["tmp_name"]=="none"){ print("ファイルのアップロードができませんでした。<BR>\n"); exit; } $fp = fopen($_FILES["upfile"]["tmp_name"], "rb"); if(!$fp){ print("アップロードしたファイルを開けませんでした"); exit; } $imgdat = fread($fp, filesize($_FILES["upfile"]["tmp_name"])); fclose($fp); print("ファイルサイズ:{$_FILES["upfile"]["size"]}<BR>\n"); $len = strlen($imgdat); print("データ長 = $len<BR>"); $imgdat = addslashes($imgdat); $con = mysql_connect("***.***.***.***", "*****", "*****"); if (!$con){ print("MySQLへの接続に失敗しました"); exit; } if (!mysql_select_db("*****")){ print("データベースへの接続に失敗しました"); exit; } $encoded_file = base64_encode($imgdat); $sql = "INSERT INTO image (img_data) values ('$encoded_file')"; $result = mysql_query($sql); if (!$result){ print("SQLの実行に失敗しました<BR>"); print(mysql_errno().": ".mysql_error()."<BR>"); exit; } mysql_close($con); } ?> +++img_display.php+++ <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE>データベースへの画像の表示</TITLE> </HEAD> <BODY> <P>ファイルの表示</P> <FORM method="POST" enctype="multipart/form-data" action="img_display.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="1048576"> 画像のファイルIDを入力してください<BR> <INPUT type="text" name="log_id"><BR> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="リセット"> </FORM> <?php if ($_POST["submit"]!=""){ $log_id = $_POST['log_id']; echo "<img src=\"get_image.php?log_id=" . $log_id . "\">"; } ?> </BODY> </HTML> +++get_image.php+++ <?php if ($_GET["log_id"]!=""){ $log_id = $_GET['log_id']; $con = mysql_connect("***.***.***.***", "*****", "*****"); if (!$con){ print("MySQLへの接続に失敗しました"); exit; } if (!mysql_select_db("******")){ print("データベースへの接続に失敗しました"); exit; } $sql = "SELECT img_data FROM image WHERE log_id='".$log_id."'"; $result = mysql_query($sql); if (!$result){ print("SQLの実行に失敗しました<BR>"); print(mysql_errno().": ".mysql_error()."<BR>"); exit; } $row = mysql_fetch_array($result); mysql_close($con); $decoded_file = base64_decode($row[1]); mb_http_output("pass"); header("Content-type: image/jpeg"); header("Content-Disposition: inline; filename=image.jpg"); echo $row[0]; } ?> DBのほうのテーブルには、「log_id」と「img_data」があります。 すみませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数のデータベースを使う場合

    php4 + MYSQL4.0.2で作業しています。 1つのサーバーにある、複数のデータベースに接続する方法を教えてください。 DB1:テーブルhoge(ID、name) DB2:テーブルhogehoge(ID, hogeID, comment) このような場合、データベースが全てDB1に入っているとすれば、 $con = mysql_connect(host, user, pass); sql="SELECT name, comment" . " FROM hogehoge INNER JOIN hoge ON hogehoge.hogeID = hoge.ID"; $rst = mysql_db_query(DB1, $sql, $con); $col = mysql_fetch_array($rst); print($col['name'] . $col['comment']); となりますが、 テーブルhogeとhogehogeが、異なるデータベースに存在する場合はどのようにすればよいのでしょうか? 以上、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • データベース名などこれで合っているでしょうか・・。

    すいません。初めてデータベースを扱うのですが、今までローカル環境でしか動かしていないため どのように実際に動かすのか分からない部分があります。(サイトは完成していましてローカル環境ではちゃんと動きました) まずデータベース名やアカウント名なのですが、データベースのためにさくらのサーバーを借りました。 データベースの設定画面を見ると以下のようになっています。 ----------------------------------------------------- データベース バージョン: MySQL 5.5 データベース サーバ mysql9999.db.sakura.ne.jp データベース ユーザ名 (初期アカウント名) abcd777 接続パスワード変更 ************ データベース名 abcd777_data ------------------------------------------------------- 上記の場合以下で合っているのでしょうか? $pdo = new PDO("mysql:dbname= _abcd777_data ; host=mysql9999.db.sakura.ne.jp", "abcd777", "************"); ポート番号なども設定があるような事も書いてあるサイトがあるのですが何をどうしてよいのか 全く分かりません。(とりあえず上記のような設定でデータベースからデータをphpで呼び出しましたが 上手く動きませんでした) もう一つ疑問があるのですが、私はトップページをindex.phpとしましたが、上記のような方法では アカウントやらパスワードが丸見えですよね? そもそも私は全く違う事をしているのでしょうか? できれば実際の運用の流れも簡単に書いてもらえると助かります。

  • Moodleのデータベース移行について

    Moodleで構築したWEB環境のサーバ移行を考えていますが データベース(MySQL)を正しくバックアップ&リストアするコマンドに教えていただけませんでしょうか? オプションまで含めて間違いなく移行できる方法を探しています。 Moodleに関係なくてもmysqlに詳しい方は教えてください。

  • phpとデータベース

    毎回お世話になっております。あの今phpmy-adminで作成したデータベースにphpでつなげました。ユーザがウェブページ上で入力したものを保存してテーブルのそれぞれのレコードを表示させました。そこのページに”削除”というボタンを押すとテーブルからそのレコードだけを消せるようにしたいのですがどのようにすれば良いでしょうか?下のようなものを考えたのですが失敗してテーブルに含まれる全てのレコードを間違って消してしまいました。すみませんがよろしくお願いします。 2つテーブルがあり、entries とcommentsテーブルのフィールドはこのようになっております。 entries entry_id title entry entered_timestamp comments comment_id commentor_name commenter_email comment timestamp <html> <body> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> <?php require_once("connect.php"); $booDelete = 0; $dbRecords = mysql_query("SELECT* FROM entries", $dbLocalhost) or die("Problem reading table: " .mysql_error()); while ($arrRecords = mysql_fetch_row($dbRecords)) { echo "<p>" .$arrRecords[0] ." "; echo $arrRecords[1] . ""; echo $arrRecords[2] . ""; echo $arrRecords[3] ."</p>"; echo "<INPUT type ='submit' value ='Delete' name='submit'>"; } if (isset($_POST["submit"])) { $dbRecordDelete = mysql_query("DELETE FROM entries WHERE entry_id = entry_id", $dbLocalhost); } ?> <form> </body> </html>

    • ベストアンサー
    • PHP
  • データベースに接続できない・・・。

    こんにちは。 PHPとmysqlでデータベースを作ろうと思っています。 mysqlサーバーに今回使うAテーブルだけを使用できる権限でuesrを作りました。 PHPから接続するのに if(!$con = mysql_connect("localhost", "user", "test")){ die("データベース接続エラー.<br />"); } mysql_select_db("A","$con"); というスクリプトを書いたら Warning: Access denied for user: 'user@localhost' (Using password: YES) in /usr/local/asuka/virtual/B3X000804/files/htdocs_russ.jp/shopping/shop_kanri/knri_menyu.php on line 11 Warning: MySQL Connection Failed: Access denied for user: 'user@localhost' (Using password: YES) in /usr/local/asuka/virtual/B3X000804/files/htdocs_russ.jp/shopping/shop_kanri/knri_menyu.php on line 11 データベース接続エラー. というエラーが表示されデータベースに接続できません。 何故でしょうか?どうにか接続する方法はありませんか? もしくはroot権限を持たさないと接続できないのでしょうか?あいまいな質問で申し訳ございませんが、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう