2016-12-09 5 views
0

Ich möchte einige Daten in die Datenbank per Abfrage in PHP einfügen. Ich habe so etwas.PHP Img in die Datenbank einfügen

$zp='INSERT INTO `user`(`name`, `password`, `avatar`) VALUES ("'.$_POST['login'].'","'.$_POST['password'].'")'; 

und ich möchte im dritten Wert

<img src="$file_name.$file_type"/> 

Aber ich habe keine Ahnung setzen, wie diese Abfrage in PHP schreiben

+0

Es ist keine gute Idee, BLOB-Image zu speichern, sondern nur den Pfad zu speichern. –

+2

http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – Sammitch

Antwort

0

Sie benötigen eine Upload-Funktionalität erstellen und zu speichern Nur der Pfad, wo Sie Bilder sind gespeichert.

Erstellen Sie eine Tabelle in Ihrer Datenbank mit wenigen Spaltennamen: Dateipfad, Pantomime, Größe.

Ein kleines Beispiel: index.php:

if(isset($_FILES['file']['name'])){ 
    $name = $_FILES['file']['name']; 
    $mime = $_FILES['file']['type']; 
    $size = $_FILES['file']['size']; 
    $tmp = $_FILES['file']['tmp_name']; 
    $path = 'uploads/' . $name; //maybe you should create the uploads/ folder before running the script 

    if(move_uploaded_file($tmp, $path)){ 
     $db = new PDO('mysql:host=localhost;dbname=your_db_name','your_db_user','your_db_pass'); 
     $stmt = $db->prepare('INSERT INTO your_table_name_here SET filepath=?,mime=?,size=?'); 
     $stmt->execute([$path,$mime,$size]); 
     echo 'File uploaded successfully!'; 
    } 
} 
?> 
<form action="index.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file"> 
    <input type="submit" name="submit" value="Upload"> 
</form> 

Dann können Sie alle gespeicherten Pfade greifen, und fügen Sie sie als src attrbuite für Ihre Bilder.

//index.php 
$stmt = $db->prepare('SELECT filepath FROM your_table_name_here'); 
$stmt->execute(); 
while($row = $stmt->fetch()){?> 
    <img src="<?php echo $row['filepath']; ?>" alt="image"> 
<?php } 

Aber bemerken dies nur ein super einfaches Skript ist, für Ihre Lernzwecke, und dieser Code darf nicht im Produktionsmodus verwendet werden, da nicht sicher ist.