我可以使用sqli multi_query执行多个查询,但只返回一个结果

时间:2018-04-08 23:02:39

标签: php mysqli mysqli-multi-query

我正在对数据库服务器的单个请求中执行多个SQL插入命令和一个选择查询,但我也会为每个命令返回结果。

简化示例:

$query = 'INSERT INTO table1 (column1) VALUES (123);' .
         'SET @id = LAST_INSERT_ID();' .
         'INSERT INTO table2 (column1, column2) VALUES (@id, 456);' .
         'INSERT INTO table3 (column1, column2) VALUES (@id, 789);' .
         'SELECT @id';

$conn = new mysqli('server', 'user', 'pass', 'name');

if ($conn->multi_query($query)) {
    do {
        if ($result = $conn->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
    } while ($conn->next_result());
}

这导致三个空结果,第四个是我想要的结果。

是否有可能不返回非查询(INSERT和SET)的结果,只得到一个结果(对于SELECT)所以我不必通过每个查询获得我想要的结果?< / p>

NB。由于动态生成的INSERT的复杂性和可变性,不希望为此使用存储过程

0 个答案:

没有答案