在if语句中测试PDO查询是否也运行它?

时间:2015-06-05 15:33:35

标签: php mysql pdo

我正在检查如何测试查询成功,并看到了这个方法:

if($db->query(...)){

    //It was successful!

} else {

    //Something went wrong

}

但这只是检查查询是否会成功运行,还是运行查询然后返回true / false?我假设它确实在运行,但这让我想到了一个主要问题:

我是否可以通过这种方式测试查询是否成功,同时将结果集存储在变量中,如此?

if ($result = $db->query(...)){

//something

}

否则我必须在if语句中运行一次相同的查询,然后将结果存储在变量中。

但是,基本上,这就是我所想知道的。感谢所有友好的帮助。 :)

2 个答案:

答案 0 :(得分:1)

在特定上下文中,函数和方法的行为不同。

如果if运行查询,则行为不会更改,如果它在$result = $db->query(); if (is_null($result)) { var_dump($result); } 语句中。

所以,是的,它确实运行了查询

您可以尝试这样的方法来测试您的查询

<legend translate>Lower secondary studies</legend>

答案 1 :(得分:1)

如果您想在运行之前验证查询,那么您可以尝试首先准备它:

$prepare = $db->prepare($sql);

// check if SQL compiled
if($prepare)
{
    // execute the SQL
    $execute = $prepare->execute();
}