2012-02-20 48 views
1

我在这同一个脚本页面中使用这样的查询如何在同一个SQL查询中插入和选择数据?

INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) 

现在以后,我需要使用值coin_ID,我只是插在上面的查询。这是自动增量值,所以我添加了NULL。

如何在同一页面中使用此coin_ID后,我运行了一些PHP检查?

感谢

+0

我忘了提及,我打算使用该coin_ID来选择另一个表中的链接列 – 2012-02-20 17:44:24

+0

当我使用该功能时出现此错误http://i.imgur.com/f34EJ.png是否可以问题与权限? – 2012-02-20 17:55:58

回答

0

尝试通过PHP mysql_insert_id功能使用LAST_INSERT_ID()

+0

这个函数实际上是安全的,因为在当前上下文插入之间存在另一个插入到数据库中的线程/进程,然后运行此函数?如果没有,似乎会导致微妙的腐败/错误,很难追查! – Kitsune 2012-02-20 17:47:45

+0

@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

+0

@Kitsune请不要把mysql开发者当成傻瓜。 – 2012-02-20 17:50:43

1

$coin_ID = mysql_insert_id();

2

这要看数据库驱动程序使用的是用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; 

如果您编辑您的帖子以包含您正在使用的数据库交互方法,我们可以提供更具体的答案。