gpt4 book ai didi

php - MySql 准备语句不适用于 SELECT,但适用于所有其他语句

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

我在 SO 找到了同样的问题

Prepared statement works for INSERT but not for SELECT

并尝试遵循它,但没有运气。还有一件事,这个问题是关于OOP结构的,但我的问题是过程风格

这是我的代码

$stmt = mysqli_stmt_init($connect_dude);

if(mysqli_stmt_prepare($stmt,"SELECT headx FROM main_page WHERE user_id=?")){

mysqli_stmt_bind_param($stmt, "i", $idx);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $head);
printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

...................
...................
}

它显示 Number of rows:0 而它应该是 1。这就是为什么,我不能进一步从 fetch data >数据库。我尽力解决了这个问题,但无法解决。

非常感谢您的帮助。

感谢您的宝贵时间。

最佳答案

我想通了。

需要使用mysqli_stmt_store_result($stmt)

mysqli_stmt_bind_param($stmt, "i", $idx);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

给我 Number of rows:1

截至 php.net

您必须为每个成功生成结果集(SELECT、SHOW、DESCRIBE、EXPLAIN)的查询调用 mysqli_stmt_store_result()

但是

对于 UPDATEDELETEINSERT 不是必须的。

谢谢大家

关于php - MySql 准备语句不适用于 SELECT,但适用于所有其他语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732625/

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