2017-04-27 11 views
0

イメージをmysqlデータベースにアップロードしようとしていますが、イメージをアップロードするときに確認メッセージが表示されますが、データベースをチェックするとイメージ行が空白になります。イメージをデータベースに挿入

<?php include "connection.php"; ?> 
 
<?php 
 
$n=$_POST["num"]; 
 
$t=$_POST["texto"]; 
 
$i=$_POST["imagem"]; 
 
$image = addslashes(file_get_contents($_FILE['$i']['tmp_name'])); 
 

 
if ($connect->connect_error){ 
 
\t die("Connection failed: " . $connect->connect_error); 
 
} 
 

 
$sql = "UPDATE servicos SET texto='$t', imagem='{$image}' where nmr=$n" ; 
 

 
if ($connect->query($sql) === TRUE) { 
 
\t echo "informação atualizada"; 
 
} else { 
 
\t echo "Error: " . $sql . "<br>" . $connect->error; 
 
} 
 

 
$connect->close(); 
 
?>
<html> 
 
<body> 
 
<div class="formulario" style="width: 100%; height: 100%;"> 
 
<form enctype="multipart/form-data" name="form1" target="apresenta" method="post" action="menu2.php" style="position:absolute; top:70;left:10 
 
border:thin; border-style:none;"> 
 
<label> Atualizar dados </label><br> 
 
Numero:&nbsp;<input type="text" name="num" value=""><br> 
 
Texto:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="texto" value=""><br> 
 
Imagem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="file" name="imagem" value=""><br> 
 
<input type="submit" name="submit" value="enviar">&nbsp;&nbsp;&nbsp; 
 
<input type="reset" value="limpar"> 
 
</form> 
 
</div> 
 
</body> 
 
</html>

+0

なぜaddslashesを使用していますか(file_get_contents(?参照:https://www.w3schools.com/php/php_file_upload.asp –

+0

なぜデータベースサイズを増やしたいのですか?データベースにファイルを保存するにはファイルシステムの助けを借りてください。データベースにファイルを保存したい場合は、まずデータベースをbase64形式またはデータベースに保存できる他の形式に変換する必要があります。 – itzmukeshy7

+0

Aこれを処理する一般的な方法は、イメージをファイルシステムに保存し、データベースへの画像のパスだけを格納することです。 – fredrover

答えて

0

これは(PHP 7で)どのような作品である、 "ので...あなたは、テーブル内のファイルを保存してはならない" 旨のすべてのコメントに加えて:

<?php 
if(isset($_POST['submit'])) { 
    var_dump($_FILES); 
    $dbh = new PDO("mysql:host=127.0.0.1;dbname=test", "root", ""); 
    $stm = $dbh->prepare("INSERT INTO test_img (cont) VALUES (?)"); 
    $stm->execute(array(file_get_contents($_FILES['fileinput']['tmp_name']))); 
} 
?> 
<form method="post" enctype="multipart/form-data"> 
    File: <input type="file" name="fileinput"><br> 
    <button name="submit">Upload</button> 
</form> 

考えられるエラーソース:

  • $connect->query($sql) === TRUEはこのことができます$sql = "UPDATE servicos SET texto='".$t."', imagem='".$image."' where nmr=".$n;

希望:あなたはUPDATEしたいエントリが

  • imagem='{$image}'存在しません
  • は、変数を挿入しますむしろ「ハック」方法、使用の連結です。

  • 関連する問題