gpt4 book ai didi

php - MySQLi multi_query() 好奇心

转载 作者:行者123 更新时间:2023-11-29 00:12:40 25 4
gpt4 key购买 nike

谁能解释一下 mysqli multi_query() 的用途是什么?我不明白一个简单的 MySQLi 查询是否支持多语句,或者我是否被迫使用 multi_query() 来执行这样的查询:

   SET @row:=0;
SELECT * FROM (
select id,
@row:=@row+1 AS `rank` FROM `users` WHERE `points` <= 63 ORDER BY `points` DESC
) AS number
WHERE id = 1

我问这个是因为运行 $mysqli->query(ABOVE_STATEMENT) 返回语法错误.. 即使在 phpMyAdmin 中运行相同的语句(使用 mysqli 扩展设置)它成功返回需要的数据。

最佳答案

您不必使用 multi_query 来做到这一点。 @row 变量在您的整个 session 期间保持其值(即,直到您与 MySQL 断开连接)。

您可以将 SET 语句和 SELECT 语句作为单独的查询提交。

$mysqli->query("SET @row:=0");
$mysqli->query("SELECT * ... ");

没有充分的理由使用多查询。 There are good reasons not to use multi-query.

如果有人告诉您使用多查询效率更高,因为“一次往返比两次往返快”,请告诉他们向您展示一个可以证明这一点的基准。然后告诉他们您不打算在一个 PHP 请求中运行一千个查询,因为只有这样才能使性能差异产生任何重大影响。

关于php - MySQLi multi_query() 好奇心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com