gpt4 book ai didi

PHP动态绑定(bind),如何知道从MySQL中选择了多少结果?

转载 作者:行者123 更新时间:2023-12-04 06:17:19 24 4
gpt4 key购买 nike

我正在使用动态 bind_parm ,即:

public function get_result($sql,$types = null,$params = null) {
$stmt = $this->mysqli->prepare($sql);

if($types&&$params)
{
$bind_names[] = $types;
for ($i=0; $i<count($params);$i++)
{
$bind_name = 'bind' . $i;
$$bind_name = $params[$i];
$bind_names[] = &$$bind_name;
}
$return = call_user_func_array(array($stmt,'bind_param'),$bind_names);
}

$stmt->execute();

# these lines of code below return one dimentional array, similar to mysqli::fetch_assoc()
$meta = $stmt->result_metadata();

while ($field = $meta->fetch_field()) {
$var = $field->name;
$$var = null;
$parameters[$field->name] = &$$var;
}

call_user_func_array(array($stmt, 'bind_result'), $parameters);

while($stmt->fetch())
{
$this->handler ($parameters); // Handle queried results
}

$stmt->close();

}

但是,我无法检索在上次操作期间选择了多少行,我尝试了 $mysqli->affected_rows ,它始终为 -1;并且 $mysqli->num_rows 是不可访问的,它在 $mysqli 中是未定义的。

我认为在该循环中放置一个变量来计算它是不必要的,有人有建议吗?

非常感谢 !

最佳答案

您可以使用

$stmt = $this->mysqli->prepare('SELECT FOUND_ROWS()');
$stmt->execute();
$rowsCount = $stmt->fetchColumn(0);

关于PHP动态绑定(bind),如何知道从MySQL中选择了多少结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7064174/

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