MySql 准备语句不适用于 SELECT,但适用于所有其他语句
MySql prepared statement is not working for SELECT,but works for all other statement
我在 SO
发现了同样的问题
Prepared statement works for INSERT but not for SELECT
并试图遵循它,但没有 luck.One 更多的东西,那个问题是关于 OOP
结构的,但我的是 procedural style
这是我的代码
$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
。这就是为什么,我无法从 database
继续到 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
You must call mysqli_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN)
但是
对于 UPDATE
、DELETE
和 INSERT
.
不是必须的
谢谢大家
我在 SO
Prepared statement works for INSERT but not for SELECT
并试图遵循它,但没有 luck.One 更多的东西,那个问题是关于 OOP
结构的,但我的是 procedural style
这是我的代码
$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
。这就是为什么,我无法从 database
继续到 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
You must call mysqli_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN)
但是
对于 UPDATE
、DELETE
和 INSERT
.
谢谢大家