MySQL 单查询中的 INSERT 和 SELECT

Jig*_*rto 1 php mysql

如何执行一个同时包含 INSERT 和 SELECT 的查询,然后读取选择的结果?我想插入然后选择一些内容,所有这些都必须在一个查询中完成......

我知道它在单个查询中接受多个命令...但我想读取查询结果,但无法读取结果。我正在这样做:

$results=mysql_query("
INSERT INTO table1 (field1,field2) VALUES('aaa','bbbb') ON DUPLICATE KEY UPDATE `field1` = 'cccc', `field2`='dddddd'; 
SELECT field3 Form Table3 WHERE field3='eeeee';
",$connection);

while ($rows = mysql_fetch_array($results, MYSQL_NUM))  
echo $rows[0];
Run Code Online (Sandbox Code Playgroud)

Pie*_*ier 5

所有操作都必须在一个查询中完成...

为什么需要一个查询中完成所有操作?

就像 Wiseguy 所说,我认为你正在寻找的东西叫做交易。

此外,考虑更新到 PDO 可能是一个好主意,这将为您提供更完整的工具集,例如事务和查询参数。

无论如何,为了回答你最初的问题,不,这是不可能的。

更新:这是 PDO 中的事务示例。

try
{
    $pdo->beginTransaction();

    $pdo->query(' ... ');
    $pdo->query(' ... ');
    $pdo->query(' ... ');

    $pdo->commit();
}
catch(Exception $e)
{
    $pdo->rollback();
    die($e->getCode() . ': ' . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)