$sql =
'INSERT INTO customer
(first_name,
last_name,
email,
password,
date_created,
dob,
gender,
customer_type)
VALUES(:first_name,
:last_name,
:email,
:password,
:date_created,
:dob,
:gender,
:customer_type)' . ' SELECT LAST_INSERT_ID()' ;
有谁能告诉我语法是否正确?我在使用mysql_insert_id时遇到问题,这就是我使用SELECT LAST_INSERT_ID()
的原因错误消息: mysql_insert_id()[function.mysql-insert-id]:拒绝访问用户'ODBC'@'localhost'
答案 0 :(得分:1)
SELECT
在查询的上下文中没有意义。为它执行单独的查询。
答案 1 :(得分:1)
不,没有任何意义。如果您真的想要选择last_insert_id,则应该在单独的(实际上通常是下一个)语句中进行。
但是没有必要这样做,因为你可以在API级别这样做。只需为您的API调用适当的函数即可获取最后一个插入ID。没有必要单独声明。
答案 2 :(得分:1)
首先,你需要使用分号来分隔两个查询,其次mysql_query不允许你同时执行两个查询,第三,如果你有很多并发用户,“SELECT LAST_INSERT_ID”可能会出现问题(可能会发生冲突) )。你对mysql_insert_id有什么问题?
答案 3 :(得分:1)
如果在两个查询之间添加结束;
,它将起作用(至少MySQL会接受它,我不知道PHP是否会抱怨)。但是,如上所述,它不是很好的代码,如果你把它分开,那将是一个竞争条件。用mysql_insert_id()
计算你的扭结并使用它为它设计的。