mysql:使用INSERT INTO ... SET来填充表时获取ERROR 1054

时间:2011-12-01 12:50:10

标签: mysql insert-into

尝试使用phpacademy的教程创建博客,我在使用php在我的mysql中添加类别名称时遇到了问题(在此视频中https://www.youtube.com/watch?v=JBcXMVjk83Q

作者正在使用此代码将类别名称放入类别表中:

function add_category($name) {
$name = mysql_real_escape_string($name);

mysql_query("INSERT INTO `categories` VALUES `name` = `{$name}`");

}

但它对我不起作用(我正在使用PHP Version 5.3.3-7和Ver 14.14 Distrib 5.1.49对debian squeeze进行测试)。

我正在连接到mysql和数据库,但我们通过命令行直接在mysql中尝试查询,我有以下错误:

ERROR 1054 (42S22): Unknown column 'uncategorized' in 'field list'

然后我注意到使用此查询正在运行:

INSERT INTO categories(name)VALUES('uncategorized');

但是我想知道是否有一种方法可以使用与作者使用相同的方法,以及它是否比我发现的工具更好,更安全,更快(或者更有用)。

谢谢!

2 个答案:

答案 0 :(得分:3)

你在这里使用错误的引号:

mysql_query("INSERT INTO `categories` VALUES `name` = `{$name}`");

使用单引号:

mysql_query("INSERT INTO `categories` VALUES `name` = '{$name}'");

单引号帧数据,而反引号`用于标记数据库元素 - 表,列等。

答案 1 :(得分:1)

你可以这样做

mysql_query("INSERT INTO categories(name) VALUES('$name')");