首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择...去理解它的行为

选择...去理解它的行为
EN

Stack Overflow用户
提问于 2013-04-02 20:02:11
回答 1查看 59关注 0票数 0

有人告诉我,我可以检查SELECT语句是否使用以下语法找到列

代码语言:javascript
复制
$rows = query( "SELECT * FROM tbl WHERE id = idx");
if ( $rows == false )

而且它似乎起作用了。

无论如何,如果我检查if ( $rows == 0 ),它不会返回相同的值。

0false不应该是相同的吗(当然,除了类型之外)?

当查询没有找到行时,它返回的实际值是多少?我之所以这样问,是因为它看起来不是假的,因为var_dump( $rows === false )语句打印了false

*编辑:对不起,伙计们,query()是别人写的库中的一个函数,我不知道(我现在从sql开始...)。它只是执行一条SQL语句,返回一个包含结果集中所有行的数组,如果出现(非致命)错误(如row not found),则返回false。

不过,我还有一个小问题。函数在没有找到行时返回false,所以我不应该用if ( $rows === false )捕获它吗

为什么var_dump(false)不给我打印任何东西,而var_dump(true)给我打印1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-02 20:10:27

我不太确定您是否使用简单的mysql_*函数、MySQLi或PDO,但在任何情况下$rows都不会返回结果行数。它是一个返回/创建的布尔值/对象,取决于查询的成功与否。

代码语言:javascript
复制
$sql = $mysqli->query("SELECT * FROM tbl WHERE id='1'");
if(!$sql->error)
  $number_of_rows = $sql->num_rows; // for sure it will output 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15763607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档