我收到错误:字段列表中的未知列,而我确定我没有输入任何拼写错误且列存在。
任何人都知道我在俯视什么?
<?php
//create_cat.php
include '../includes/connection.php';
$cat_name = mysql_real_escape_string($_POST['cat_name']);
$cat_description = mysql_real_escape_string($_POST['cat_description']);
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
//the form hasn't been posted yet, display it
echo "<form method='post' action=''>
Category name: <input type='text' name='cat_name' id='cat_name'/>
Category description: <textarea name='cat_description' id='cat_description' /></textarea>
<input type='submit' value='Add category' />
</form>";
}
else
{
//the form has been posted, so save it
$sql = 'INSERT INTO categories(cat_name, cat_description) VALUES ($cat_name, $cat_description)';
$result = mysql_query($sql);
if(!$result)
{
//something went wrong, display the error
echo 'Error' . mysql_error();
}
else
{
echo 'New category successfully added.';
}
}
?>
答案 0 :(得分:3)
问题是你的SQL查询。您使用单引号,这是一个文字字符串。您的变量将不会被解析。您需要使用双引号。不仅如此,对于字符串,在将它们放入查询时,需要在它们周围加上单引号。
$sql = "INSERT INTO categories(cat_name, cat_description) VALUES ('$cat_name', '$cat_description')";
您还应该尝试不再使用 mysql _ * 。它已被折旧(意味着它将很快从PHP中删除)。尝试查看MySQLi(非常类似于MySQL)或PDO。
答案 1 :(得分:2)
试试这个:
$sql = "INSERT INTO categories(cat_name, cat_description) VALUES ('$cat_name', '$cat_description')";
更新: 你用'开始一个字符串。这样做时,不可能在文本中使用变量,它们只是作为纯文本留下。但是当使用“变量将被评估。