Mysql的语法错误?

时间:2013-12-17 19:47:58

标签: php mysql

$SQL="SELECT first_name FROM people WHERE fname = '$fname' INSERT INTO (first_name) VALUES (fname)";

这有什么问题吗?尝试将用户定义变量中的值插入到mysql表中

警告:mysql_num_rows()要求参数1为资源,布尔值在第44行的D:\ wamp \ www \ Pxxxx \ process.php中给出

这是错误

$ fname是用户定义的变量 first_name是我试图将其插入的列,它位于名为people

的表中

2 个答案:

答案 0 :(得分:3)

您的订单已被倒置。看起来你正在寻找INSERT .. SELECT语法(参见MySQL文档:http://dev.mysql.com/doc/refman/5.6/en/insert-select.html

INSERT INTO target_table (first_name)
SELECT fname
FROM people
WHERE fname = ?

从您的示例中不清楚您尝试插入数据的表的名称是什么,所以我只是在此处将其列为target_table

答案 1 :(得分:1)

您的SQL语句必须像这样重新排序:

"INSERT  INTO people (fname) SELECT '$fname' FROM dual;"

这将从伪表“dual”中选择$ fname的值,并将值插入“people”。

也许这更合适:

"INSERT INTO people (fname) VALUES ('$fname');"

此代码段显示了一个简单的插入语句。

注意:请在维基百科上查看SQL注入。您正在编写的代码对这些类型的攻击是开放的。如果您正在编写PHP代码,请查看Prepared Statements和mysqli以防止这些攻击。