我发现了几个教程,它们的代码类似如下:
$sql = "select * from users";
$result = $conn1->Execute($sql);
if ($result==false) {
print 'error' . $conn1->ErrorMsg() . '<br>';
} else {
print_r($result->GetRows());
}
但是$结果怎么可能是虚假的?如果我添加一个无法实现的where子句,则仍然会使用else-branch,因为$ result包含列标题。的实施例
"select * from users"; // Select the whole table data
echo "$result";
导致
id,username,password 1,peter,geheim 2,sabine,secret 3,thorsten,qwertz
而
"select * from users where username = 'does not exist'";
echo "$result";
导致
id,username,password
因此结果永远不会错。这里我的错误是什么?
答案 0 :(得分:1)
如果查询本身失败,则Execute方法返回false
,如果结果为0则不返回。
如果要检查查询是否返回任何结果,可以使用RecordCount方法。
$rows = $conn1->Execute($sql);
if ($rows->RecordCount() > 0) {
// Do something with your rows
} else {
// Nothing returned
}