Mysql和使用函数last insert ID时出现问题
当我运行我的查询时,我得到了这个错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第3行“选择最后一个\u插入\u id作为产品id”附近要使用的正确语法 国家错误代码1064 查询错误字符串:Mysql和使用函数last insert ID时出现问题,mysql,coldfusion,railo,Mysql,Coldfusion,Railo,当我运行我的查询时,我得到了这个错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第3行“选择最后一个\u插入\u id作为产品id”附近要使用的正确语法 国家错误代码1064 查询错误字符串: insert into products (systemname, systemversion, created_date) values ('web andrea', '', now()); select last_insert_id() as productid; 数据库名
insert into products (systemname, systemversion, created_date)
values ('web andrea', '', now()); select last_insert_id() as productid;
数据库名称字符串MySQL
数据库版本字符串5.6.10-log
DriverName字符串MySQL AB JDBC驱动程序
insert into products (systemname, systemversion, created_date) values ('web andrea', '', now()); select last_insert_id() as productid;
我希望插入数据,但在这里失败了
提前谢谢
Andrea您运行的不是一个查询,而是两个查询:插入,然后选择
在应用程序中,需要进行两个不同的查询调用,一个用于插入,另一个用于获取最后插入的id
请注意,您的数据库驱动程序可能有一个内置函数,用于返回PHP中最后插入的等效id。除了@GMB的注释外,它出错的原因是出于安全原因,默认情况下不允许使用多个语句-以防sql注入。它们可以通过启用。但是,请确保所有查询都使用cfqueryparam来防止sql注入 话虽如此,您不需要最后一个插入id或多个语句。相反,使用。插入后,CF用新记录id填充变量yourResultName.GENERATEDKEY
<cfquery result="yourResultName" datasource="yourDSN">
insert into products (systemname, systemversion, created_date)
values (
<cfqueryparam value="web andrea" cfsqltype="cf_sql_varchar">
, <cfqueryparam value="" cfsqltype="cf_sql_varchar">
, now()
)
</cfquery>
<!--- DEMO --->
<cfoutput>
New ID (yourResultName.GENERATEDKEY) = #yourResultName.GENERATEDKEY#
</cfoutput>
还应该注意的是,您不一定希望运行背靠背查询。当您选择最后一个插入的id时,另一个会话可能已经插入了一个新的id,这就是您选择的id。您希望获取在执行插入的同一查询会话期间插入的id。