gpt4 book ai didi

php - "SELECT"命令的准备语句失败,在 PHP 中使用 mysqli

转载 作者:可可西里 更新时间:2023-11-01 08:16:34 26 4
gpt4 key购买 nike

我已经能够使用 mysqli(在 PHP 中)执行多个准备好的语句。但是,由于某种原因,当我尝试运行“SELECT”命令时,准备好的语句总是遇到错误。例如,以下行将成功:

$stmt=$mysqli->prepare("UPDATE events SET category='m' WHERE id=(?)");

但是,以下行将失败:

$stmt=$mysqli->prepare("SELECT * FROM events WHERE id=(?)");

当我说失败时,我的意思是接下来的三行将为 UPDATE 命令返回 1(表示更改了一行)...

$stmt->bind_param('i',$id);
$stmt->execute();
echo $stmt->affected_rows;

接下来的三行将为 SELECT 返回 0:

$stmt->bind_param('i',$id);
$stmt->execute();
echo $stmt->num_rows;

郑重声明,我知道准备好的语句对于单个 SELECT 的效率不高 - 这个问题主要是学术性的。

最佳答案

此函数 (affected_rows) 仅适用于更新表的查询。为了从 SELECT 查询中获取行数,请改用 mysqli_stmt_num_rows()。

http://php.net/manual/en/mysqli-stmt.affected-rows.php

确保先存储结果!!

$stmt->execute();

/* store result */
$stmt->store_result();

printf("Number of rows: %d.\n", $stmt->num_rows);

关于php - "SELECT"命令的准备语句失败,在 PHP 中使用 mysqli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231675/

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