1

谁能告诉我从 mysql db 表中删除值的正确查询,在我的情况下,用户接受表名和 id 并根据 id 删除行。这是我的查询

 sprintf(Query,"DELETE FROM ('%s') where id = (%d)",tb1,idt1) ;
 /*table name is in form of string and id is int */

 mysql_query(conn,Query);
4

1 回答 1

0

您应该删除表名周围的括号:

sprintf(Query,"DELETE FROM '%s' where id = (%d)",tb1,idt1) ;

MySQL 会考虑这样的查询语法错误:

delete from (mytable) where id=2;

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '(mytable) where id=2' 附近使用正确的语法

(我假设您对SQL 注入攻击了如指掌,并且既不tb1也不idt1是从任何形式或形式的用户输入构造的)。

于 2012-11-30T11:03:10.653 回答