PHP中num_rows输出异常问题求助
问题分析与解决
哈哈,这个坑我之前也踩过!问题的核心是PHP中die()(和exit()是同一个函数)处理参数的特殊逻辑,你没注意到它对整数和字符串的不同处理:
- 当你直接传整数(比如
die($stm->num_rows),这里num_rows的值是整数4)时,die()会把这个整数当成脚本的退出状态码——这是给操作系统看的,不会在浏览器或控制台输出任何内容,所以你看不到结果。 - 但当你把整数和字符串拼接成
'Records '.$num时,整个表达式变成了字符串类型,这时候die()就会把这个字符串输出到页面,然后终止脚本,所以你能看到Records 4。
几种直接输出记录数的方法
想要直接输出数字4,你可以试试这些写法:
把数字转成字符串再传给die
die((string)$stm->num_rows); // 页面会输出4先echo输出,再终止脚本
echo $stm->num_rows; die();用双引号包裹变量,自动转字符串
die("$num"); // 同样会输出4开发调试时用var_dump,能看到类型和值
var_dump($stm->num_rows); // 输出int(4) die();
另外提一句:你代码里调用store_result()的步骤是对的——mysqli预处理语句执行后,必须先调用store_result()把结果集存到内存里,才能正确获取num_rows,这部分你没出错~
内容的提问来源于stack exchange,提问作者sridhar
相关产品推荐
相关产品推荐

