SELECT ... INTO了解其行为

时间:2013-04-02 12:02:11

标签: mysql sql phpmyadmin

有人告诉我,我可以检查SELECT语句是否找到一个语法为

的列
$rows = query( "SELECT * FROM tbl WHERE id = idx");
if ( $rows == false )

它似乎有效。

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

0false不应该相同(当然除了类型)?

查询没有找到行时返回的实际值是多少?我问,因为它似乎不是假的,因为语句var_dump( $rows === false )打印false ..

***编辑:我很抱歉,查询()是一个来自其他人写的库的函数,我不知道(我现在开始用sql ...)。它只是执行一个SQL语句,返回结果集中所有行的数组或返回(非致命)错误(如未找到行)。

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

为什么var_dump(false)不会打印出任何内容,而var_dump(true)会将我打印出来1

1 个答案:

答案 0 :(得分:1)

我不确定你是否使用简单的mysql_*函数,MySQLi或PDO,但在任何情况下$rows都没有返回结果行的数量。它是根据查询成功返回/创建的布尔值/对象。

$sql = $mysqli->query("SELECT * FROM tbl WHERE id='1'");
if(!$sql->error)
  $number_of_rows = $sql->num_rows; // for sure it will output 1