2016-07-22 3 views
-1

Ich versuche, Datensätze in eine Datenbank aufzunehmen. Jeder Datensatz hat ein entsprechendes Bild. Die Datensätze werden in die Datenbank eingefügt, funktionieren jedoch nicht für das Bild. Ich bekomme diesen Fehler "erfolgreich verbunden" Hinweis: Undefinierte Variable: sql in C: \ xampp \ htdocs \ Syokimaufc \ addplayer.php in Zeile 35 Fehler: Abfrage war leer "Wie kann ich das lösen?Bild zu Datenbank-HTML-Formular hinzufügen

<form action="addplayer.php"method ="post" enctype="multipart/form- data"> 

    <p> id: <input type="text" name="playerid"/></p> 
    <p> Name: <input type="text" name="name"/></p> 
    <p> Age: <input type="text" name="age"/></p> 
    <p> Position: <input type="text" name="position"/></p> 
    <p> Nationality: <input type="text" name="nationality"/></p> 
    <p> Photo: <input type="file" name="image"/></p> 
<input type="submit" value="submit"/> 

<form/> 



<?php 
require 'connection.php'; 


$id = filter_input(INPUT_POST, 'playerid'); 
$name = filter_input(INPUT_POST, 'name'); 
$age = filter_input(INPUT_POST, 'age'); 
$position = filter_input(INPUT_POST, 'position'); 
$nationality = filter_input(INPUT_POST, 'nationality'); 

$_id = mysql_real_escape_string($id); 
$_name = mysql_real_escape_string($name); 
$_age = mysql_real_escape_string($age); 
$_position = mysql_real_escape_string($position); 
$_nationality = mysql_real_escape_string($nationality); 

if (isset($_POST['submit'])) 
{ 
    $imageName = mysql_real_escape_string($_FILES ["image"]["name"]); 
    $imageData = mysql_real_escape(file_get_contents($_FILES["image"]["tmp_name"])); 
    $imageType = mysql_real_escape_string($_FILES["image"]["name"]); 

    if (substr($imageType,0,5) == "image") 
    { 
     $sql = "INSERT INTO players (playerid, name, age, position, nationality, iname, image) VALUES ('$_id', '$_name', '$_age', '$_position', '$_nationality', '$imageName', '$imageData')"; 
    } 
    else 
    { 
     echo "only images are allowed"; 
    } 
} 


if (!mysql_query($sql)){ 
    die('Error: ' . mysql_error()); 
} 
+0

Was ist der Datentyp Ihrer Spalte 'Image'? Ist es ein ['BLOB'' (http://dev.mysql.com/doc/refman/5.7/en/blob.html)? Wo möchten Sie die hochgeladenen Bilder speichern? In einem Ordner in Ihrem System oder in einer 'BLOB'-Spalte? –

+0

Stoppen Sie für einen Moment und denken Sie an den Overhead für die Ausführung von mysql_real_escape in sehr großen Dateien. Möchten Sie Bilder wirklich in einer Datenbank speichern? – e4c5

Antwort

0

Put:

if (!mysql_query($sql)){ 
    die('Error: ' . mysql_error()); 
} 

Unmittelbar nach

$sql = "INSERT IN..." 

Das Problem ist, dass, weil Sie die Abfrage außerhalb aller Ihrer if Kontrollen ausführen, wird die Abfrage selbst ausgeführt werden, wenn es keine Eingabedaten (zB: kein Formular wurde gesendet), und $sql ist in diesem Fall nicht vorhanden. Daher ist die "Undefinierte Variable: sql" und die "Abfrage war leer" Fehler

Verwandte Themen