带有 INSERT OUTPUT 的 SQL 语法错误 [重复]

Posted

技术标签:

【中文标题】带有 INSERT OUTPUT 的 SQL 语法错误 [重复]【英文标题】:Error in SQL syntax with INSERT OUTPUT [duplicate] 【发布时间】:2017-10-21 11:23:10 【问题描述】:

编辑:我使用的是 PDO 对象,而不是 mysqlI,我也没有尝试获取 lastId,这些问题与您标记为“重复”的问题不同,它们只是不同的解决方案。

我的 SQL 语句出现问题,我正在使用 PDO 对象,并且一直收到此错误(如下),我尝试了几件事并进行了一些研究,但找不到任何工作。有关我做错了什么的任何信息(或者如果这是非法声明)。

感谢您的帮助!

错误

    You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near 'INSERTED.* 
INTO `visits` (`cardNum`, `purpose`, `status`) VALUES ('0','0','0') at line 1

声明

$pdo->prepare('INSERT INTO `visits` (`cardNum`, `purpose`, `status`) OUTPUT INSERTED.* VALUES (?,?,?)');

【问题讨论】:

我不会将此标记为重复,因为那个使用的是 MYSQLI,我使用的是 PDO。 【参考方案1】:

我认为在 MySQL 服务器上 OUTPUT INSERTED 不可用,如果目标是检索最后插入的 id,那么试试这个:

$pdo->lastInsertId();

【讨论】:

好吧,问题是有可能另一个实例可能插入,然后我的 lastInsertId 现在不同了,对吗?

以上是关于带有 INSERT OUTPUT 的 SQL 语法错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

生成动态SQL_insert update select 语句

INSERT INTO 语句的语法错误

SQL基础语法—insert语句

sql INSERT的替代语法

INSERT INTO 语句的语法错误

SQL INSERT INTO 语法 [重复]