2016-07-22 76 views
-1

我想將記錄添加到數據庫中。每條記錄都有相應的圖像。記錄正在插入數據庫中,但它不適用於圖像。我得到這個錯誤「連接成功注意:未定義的變量:sql在C:\ xampp \ htdocs \ Syokimaufc \ addplayer.php在35行錯誤:查詢是空的」我該如何解決這個問題?認沽將數據添加到數據庫html表格

<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

「image」列的數據類型是什麼?它是['BLOB'](http://dev.mysql.com/doc/refman/5.7/en/blob.html)嗎?你想在哪裏存儲上傳的圖像?在系統或「BLOB」列中的文件夾中? –

+0

暫停一下,並考慮在非常大的文件上執行mysql_real_escape的開銷。你真的想將圖像保存在數據庫中嗎? – e4c5

回答

0

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

立即

$sql = "INSERT IN..." 

的問題是,因爲你運行你的所有if檢查之外的查詢,查詢會,即使有運行沒有輸入數據(例如:沒有提交表格),在這種情況下$sql將不存在。因此,「未定義變量:sql」和「查詢爲空」錯誤