首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PHP/MYSQL在单个查询中执行SELECT和INSERT?

问如何用PHP/MYSQL在单个查询中执行SELECT和INSERT?
EN

Stack Overflow用户
提问于 2009-07-13 07:25:23
回答 7查看 24K关注 0票数 1

我有一个包含3个字段的表字段id, Name, Email (id是auto_increment字段)。我想在PHP中执行以下查询,但它没有返回任何结果。

代码语言:javascript
复制
INSERT INTO user_name (Name, Email) VALUES ('Example', 'example@xyz.com'); 
SELECT LAST_INSERT_ID() AS 'userid';

当我在PHP中执行上面的查询时,如下所示,它不会返回任何东西。

代码语言:javascript
复制
$_SQL="INSERT INTO user_name (Name,Email) VALUES ('Example', 'example@xyz.com'); 
SELECT LAST_INSERT_ID() AS 'userid';";

$result_last_id = @mysql_query($_SQL);
$rs_insert = mysql_fetch_array($result_last_id);

$new_userid = $rs_insert['userid'];

谁能告诉我如何将这两个查询合并为一个。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-07-13 07:29:25

让我们来看看mysql_insert_id()函数。

代码语言:javascript
复制
mysql_query($insertStatementOnly);
$new_userid = mysql_insert_id();
票数 8
EN

Stack Overflow用户

发布于 2009-07-13 07:32:30

看起来您不需要执行多个查询,但我在下面介绍了如何执行。您需要的是最后插入的id,它是从mysql_insert_id获得的。

执行多个查询

来自对mysql_query文档的评论

文档声称“不支持多个查询”。

但是,似乎支持多个查询。您只需将标志65536作为mysql_connect的5参数(client_flags)传递即可。该值在/usr/include/mysql/mysql_com.h:#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */中定义

一次执行多个查询时,mysql_query函数将只返回第一个查询的结果。其他查询也将被执行,但您不会得到它们的结果。

或者,看看mysqli库,它有一个multi_query method。

票数 5
EN

Stack Overflow用户

发布于 2009-07-13 07:30:20

答案真的很简单:你就是做不到。

http://php.net/mysql_query

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1118095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档