gpt4 book ai didi

PHP 的 PDO execute() 与 fetch()?

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:18 25 4
gpt4 key购买 nike

我有一个简短的问题,我希望能得到一个快速而明确的答案。

在 php.com 的手册中,它指出 execute() 在将值绑定(bind)到准备好的查询之后将在成功时返回 true,在失败时返回 false。很简单。

我只是想确保我清楚这一点。 execute() 返回的值对应于直接错误。例如,如果数据库在成功连接后以某种方式关闭,并且无法执行查询 - 或者其他一些异常问题。

考虑一些代码:

    protected function territoryCheck($numberOut)
{
$this->numberOut = $numberOut;

//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT t_id FROM Territory WHERE t_id = :param1")
$stmt->bindParam(':param1', $this->numberOut);
$stmt->execute();

//Determine value of test
if($stmt == FALSE)
{
return FALSE;
}
}

我很确定这不会按我的意愿运行。重点是根据参数是否有对应的值,看数据库中是否存在t_id。在那种情况下,我需要使用 $stmt->fetch()。我这样说对吗?

感谢任何帮助。

编辑:按照同样的思路,将

//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT t_id FROM Territory WHERE t_id = :param1")
$stmt->bindParam(':param1', $this->numberOut);
$stmt->execute();

在 PDO 返回异常后的 try-catch 中?

最佳答案

是的,你是对的。 $stmt->execute() 仅在执行查询失败时返回 false。它不会返回带有空结果集的 false。所以你需要使用fetch()来检查结果,fetch()对于空结果集返回false

对于异常,只有当你为execute()等方法设置异常模式时,PDO才会抛出异常。但是new PDO(...)会无论是否设置异常模式都抛出异常。

关于PHP 的 PDO execute() 与 fetch()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com