字段列表中的未知列。找不到出错的地方

时间:2014-03-23 10:35:47

标签: php mysql sql

这是我收到的错误 错误:'字段列表'中的未知列'David Beckham' 我被困在这里大约2个小时试图找出问题所在。 这里有人想指出我的代码有什么问题吗? 非常感谢您的帮助。

<?php
define('DB_NAME', 'testdb');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

//logon
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if(!$link){
     die('Could not connect: '. msql_error());
}

// select the database you gonna work with
$db_selected = mysql_select_db(DB_NAME, $link);

if(!$db_selected){
   die('Cant use' . DB_NAME . ':' . mysql_error());
}

$value = $_POST['FullName'];
$value2 = $_POST['Email'];
$value3 = $_POST['Postcode'];
$value4 = $_POST['DateofBirth'];
$value5 = $_POST['Gender'];


//insert into table.
$sql = "INSERT INTO vajayjay (FullName, Email, Postcode, DateofBirth, Gender) VALUES (`$value`, `$value2`, `$value3`, `$value4`, `$value5`)";

if(mysql_query($sql)){
   echo "Thank you for signing up";
}else{
   die('Error:'. mysql_error());
}



mysql_close();

?>

2 个答案:

答案 0 :(得分:0)

从变量

中删除反引号

正确的方式..

$sql = "INSERT INTO vajayjay (`FullName`, `Email`, `Postcode`, `DateofBirth`, `Gender`) VALUES ('$value', '$value2', '$value3', '$value4', '$value5')";

mysql_*)扩展程序自PHP 5.5.0起已弃用,将来会被删除。相反,应使用MySQLiPDO_MySQL扩展名。切换到PreparedStatements甚至可以更好地抵御SQL注入攻击!

答案 1 :(得分:0)

您正在为varible使用backtrics。这仅适用于列

$sql = "INSERT INTO vajayjay (`FullName`, `Email`, `Postcode`, `DateofBirth`, `Gender`) VALUES ('$value', '$value2', '$value3', '$value4', '$value5')";

使用列名称的后缀

(`FullName`, `Email`, `Postcode`, `DateofBirth`, `Gender`) 

用于逃避目的的变量的引用

('$value', '$value2', '$value3', '$value4', '$value5')