2016-07-22 77 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”和“查询为空”错误