我在这同一个脚本页面中使用这样的查询如何在同一个SQL查询中插入和选择数据?
INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW())
现在以后,我需要使用值coin_ID,我只是插在上面的查询。这是自动增量值,所以我添加了NULL。
如何在同一页面中使用此coin_ID后,我运行了一些PHP检查?
感谢
我在这同一个脚本页面中使用这样的查询如何在同一个SQL查询中插入和选择数据?
INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW())
现在以后,我需要使用值coin_ID,我只是插在上面的查询。这是自动增量值,所以我添加了NULL。
如何在同一页面中使用此coin_ID后,我运行了一些PHP检查?
感谢
在PHP mysql_insert_id或LAST_INSERT_ID在MySQL
尝试通过PHP mysql_insert_id
功能使用LAST_INSERT_ID()。
这个函数实际上是安全的,因为在当前上下文插入之间存在另一个插入到数据库中的线程/进程,然后运行此函数?如果没有,似乎会导致微妙的腐败/错误,很难追查! – Kitsune 2012-02-20 17:47:45
@Kitsune''LAST_INSERT_ID'在事务中是安全的,'mysql_insert_id'总是安全的(对于在线程之间不共享单个数据库连接的PHP代码)。请参阅http://stackoverflow.com/questions/1808337/is-mysql-insert-id-thread-safe。 – Borealid 2012-02-20 17:49:29
@Kitsune请不要把mysql开发者当成傻瓜。 – 2012-02-20 17:50:43
使用mysql_insert_id
来检索上次插入的ID。
$coin_ID = mysql_insert_id();
这要看数据库驱动程序使用的是用PHP。如果你正在使用PHP的PDO,那么你可以使用lastInsertId()方法
$coin_id = mysql_insert_id()
:如果您使用的是
$coin_id = $DB->lastInsertId()
如果您使用的是标准的MySQL功能,您可以使用mysql_insert_id功能支持RETURNS sql关键字的数据库(例如postgres),那么你可以在一个查询中完成。但是MySQL不支持它。
INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) RETURNING coin_id;
如果您编辑您的帖子以包含您正在使用的数据库交互方法,我们可以提供更具体的答案。
我忘了提及,我打算使用该coin_ID来选择另一个表中的链接列 – 2012-02-20 17:44:24
当我使用该功能时出现此错误http://i.imgur.com/f34EJ.png是否可以问题与权限? – 2012-02-20 17:55:58