2011-01-27 71 views

答えて

8

整数IDとBLOBデータ列のテーブル構造を仮定し、MySQL関数は、データベースとのインターフェースに使用されていると仮定すると、あなたはおそらくこのような何かを行うことができますしかし、データベースにブロブを格納することは、テーブル膨張を引き起こす可能性があり、それに関連する他の多くの問題があるため、一般的には最良のアイデアとはみなされません。より良いアプローチは、ファイルシステムのどこかでファイルを取り出すことができる場所にファイルを移動し、ファイル自体の代わりにデータベースにファイルへのパスを格納することです。

また、mysql_ *関数呼び出しを使用することは推奨されません。これらのメソッドは効果的に廃止され、4.xより新しいバージョンのMySQLを念頭に置いて作成されていないためです。代わりに、mysqliまたはPDOに切り替える必要があります。

UPDATE:mysql_ *関数は、PHP 5.xでは非推奨であり、PHP 7に完全に除去をしています!これで、より現代的なデータベース抽象化(MySQLI、PDO)に切り替えるしかありません。私は歴史的な理由のためにそのまま上記のオリジナルの答えを残すことにしましたが、実際にそれを

を使用していないここでの手続きモードでmysqliのでそれを行う方法だきました。それをやっての

$result = mysqli_query ($db, 'INSERT INTO table (
    data 
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\' 
);'); 

理想的な方法ですMySQLI/PDOは文を準備しました。

+0

私のPHPコードは以下の通りです:$ fileSize = $ _FILES ['userfile'] ['size']; $ fileType = $ _FILES ['userfile'] ['type']; $ fp = fopen($ tmpName、 'r'); $ content = fread($ fp、ファイルサイズ($ tmpName)); "$ esc =" "$ 0"、$ 0 "、$ 0"、$ 0 "、$ 0"、$ 0 "、$ 0" ) "; – xcodemaddy

+0

['mysqli_query()'](http://php.net/manual/en/mysqli.query.php)。データベース接続と最初のパラメータとしてdb接続が必要です。私は、このQ&Aに重複している人からそれを使いました。これは、適切な構文を提供するために更新する必要があります。それはすべての仕組みがわからない将来の訪問者/初心者のためのものです。 –

+0

['mysqli_real_escape_string()'](http://php.net/manual/en/mysqli.real-escape-string.php)もdb接続が必要です。ゴードンをやった後に私にpingできますか? –

-1
//Pour inserer : 
      $pdf = addslashes(file_get_contents($_FILES['inputname']['tmp_name'])); 
      $filetype = addslashes($_FILES['inputname']['type']);//pour le test 
      $namepdf = addslashes($_FILES['inputname']['name']);    
      if (substr($filetype, 0, 11) == 'application'){ 
      $mysqli->query("insert into tablepdf(pdf_nom,pdf)value('$namepdf','$pdf')"); 
      } 
//Pour afficher : 
      $row = $mysqli->query("SELECT * FROM tablepdf where id=(select max(id) from tablepdf)"); 
      foreach($row as $result){ 
       $file=$result['pdf']; 
      } 
      header('Content-type: application/pdf'); 
      echo file_get_contents('data:application/pdf;base64,'.base64_encode($file)); 
+1

あなたのコードについての説明を追加してもよろしいですか?良い答えを書く方法を理解するには、ヘルプセンターをご覧ください。 –

関連する問題