我有一个简单的准备好的声明,用于实际存在的电子邮件:
$mysqli = new mysqli("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$sql = 'SELECT `email` FROM `users` WHERE `email` = ?';
$email = 'example@hotmail.com';
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('s', $email);
$stmt->execute();
if ($stmt->num_rows) {
echo 'hello';
}
echo 'No user';
}
结果:No user
在应回显时回显hello
我在控制台中运行了相同的查询,并使用与上述相同的电子邮件得到了结果。
我也使用一个简单的mysqli查询进行了测试:
if ($result = $mysqli->query("SELECT email FROM users WHERE email = 'example@hotmail.com'")) {
echo 'hello';
}
结果:我所期望的 hello
还$result
的num_rows
是1。
为什么准备的陈述 num_row
不大于0?
当您通过mysqli执行一条语句时,直到您获取结果,结果才真正在PHP中出现-
结果由数据库引擎保存。因此,mysqli_stmt
对象无法知道执行后立即有多少结果。
像这样修改您的代码:
$stmt->execute();
$stmt->store_result(); // pull results into PHP memory
// now you can check $stmt->num_rows;
见手册
这不适用于您的特定示例,但是如果您的结果集很大,$stmt->store_result()
则会消耗大量内存。在这种情况下,如果您关心的只是弄清楚是否至少返回了一个结果,请不要存储结果。相反,只需检查结果元数据是否不为空:
$stmt->execute();
$hasResult = $stmt->result_metadata ? true : false;
见手册
问题内容: 我一直在获取要使用mysqli返回的行数方面遇到麻烦。即使确实有一些结果,我每次都会得到0。 为什么没有显示正确的数字? 问题答案: 您需要先调用num_rows查找: 请参阅文档,该文档显示在页面顶部附近(在主要说明区域中)…
问题内容: 在阅读了大量的主题,教程和其他内容之后-我想在这里发布信息,希望有人能为我提供帮助。我尝试了所有可能得到的建议,但仍然没有用。 这是我的代码: 我总是得到“ c-> 0”……但是已经有输出了……所以我在做什么错呢?:/ 问题答案: 您需要在访问属性之前调用该方法。 来自对PHP手册文档的评论: 如果不使用,并在执行准备好的语句后立即调用此函数,则该函数通常将返回0,因为它无法知道结果集
问题内容: 目前,我正在与MySQLi一起玩,试图弄清它们的工作原理。在我目前的项目中,我总是喜欢在编码时回显查询字符串,以确保一切正确,并快速调试我的代码。但是…如何使用准备好的MySQLi语句来做到这一点? 例: 我一直在浏览此列表(http://www.php.net/mysqli),但没有任何运气。 编辑 好吧,如果在MySQLi中不可能,也许我会坚持这样的事情: 显然,这还远未达到完美,
问题内容: 我有一个输出到CSV文件的脚本。但是,即使数据库中当前只有一行,但我得到的输出却在表的每一行中回显了每一列两次。 例如:1,1,John,John,Smith,Smith,2014,2014应该为1,John,Smith,2014 在我使用PDO和准备语句之前,这种方法很好用,所以我在想也许我不了解fetch()如何正确工作。下面是我的代码。知道我做错了什么吗? 问题答案: 您应该对P
问题内容: 此代码仅返回一行,但应返回2行。我在phpMyAdmin中尝试了SQL,它完美返回了2行。我在这里做错了什么? 顺便说一句,上面的代码通过以下脚本将程序移至profile.php: 问题答案: 您需要遍历结果(如TheSmose所述) 并且 您需要将结果数组发送到模板而不是。 改变这个 对此 如果您不只是想要模板中的内容(并且您不需要PHP> = 5.3 ),那么您将需要在循环内构建自
本文向大家介绍php mysqli查询语句返回值类型实例分析,包括了php mysqli查询语句返回值类型实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php mysqli查询语句返回值类型。分享给大家供大家参考,具体如下: 浏览器输出结果: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《PHP基于pdo操作数据库技巧总结》、