gpt4 book ai didi

php - $mysqli->affected_rows 返回 0 multi_query

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

我有简单的代码。此查询工作正常。它直接通过 sql 工作,也可以从 php 工作(将 $mysqli->query 更改为 $mysqli->multi_query 以使其从 php 工作)但它是 $mysqli ->affected_rows 返回 0。实际上有插入的行,当我通过 heidisql 运行查询时,它报告:

Affected rows: 2 Found rows: 0 Warnings: 0 Duration for 2 queries: 0.000 sec.

我应该如何计算受影响的行数?我做错了什么?

我也试过 rowCount() 并没有真正帮助。

include ("../connect.php");

$sql = "SELECT balance INTO @b
FROM managerstock
WHERE ID = LAST_INSERT_ID();
INSERT INTO managerstock (`inOut`, quantity, balance)
VALUES (1, 1, 3);";

if($result = $mysqli->multi_query($sql)){
echo $mysqli->affected_rows;
}

最佳答案

CALL user('param1','param2','param3','param4'); 是一个存储过程,您可以在其中编写任意数量的查询。

您可以使用 ROW_COUNT() 函数获取受影响的行数,并使用 select 语句将其提取为输出。

程序

CREATE DEFINER=`root`@`localhost` PROCEDURE `user`(IN `p_mode` VARCHAR(100), IN `p_id` INT(3), IN `p_name` VARCHAR(100), IN `p_contact_no` VARCHAR(100))
NO SQL
begin
DECLARE
row_count int(11);

if p_mode='update' then
UPDATE `user` SET `name`=p_name, `contact_no`=p_contact_no WHERE `id`=p_id;
SET row_count = ROW_COUNT();
select row_affected as row_count;
end if;
end

PHP 脚本:

<?php
function execute_qry($sql){
$fire=mysqli_multi_query($this->conn,$sql);
$array_result= array();
do{
$res = array();
if($result = $this->conn->store_result())
{
while($row = mysqli_fetch_assoc($result))
{
array_push($res,$row);
}
array_push($array_result,$res);
}
}while($this->conn->more_results() && $this->conn->next_result());
return $array_result;
}
$query = "CALL user('update','1','hiren','1234');";
$exe_qry=execute_qry($query);
?>

关于php - $mysqli->affected_rows 返回 0 multi_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647309/

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