gpt4 book ai didi

php - MySQL PDO - try { block } 里面应该有什么?

转载 作者:IT王子 更新时间:2023-10-29 00:34:46 26 4
gpt4 key购买 nike

所以我正在努力学习 PDO,并从标准的 PHP MySQL 函数进行迁移。但是,我有一个问题。关于 try {} block ,它们到底应该包含什么,外面应该包含什么?

所有使用 $sth-> ... 的东西都应该在 try {} 中吗?它应该只是从语句首次准备到执行的时间吗?甚至更少?

如有任何帮助,我们将不胜感激。 :)

这是我在类里面的一个示例方法。组织得当吗?请注意我是如何将一切 放入try {} 中的。那是错的吗?我觉得不正确,但我不确定应该如何更改它。

protected function authorized()
{
try
{
// Attempt to grab the user from the database.
$sth = $dbh->prepare("
SELECT COUNT(*) AS num_rows
FROM users
WHERE user_id = :user_id
");

$sth->bindParam(':user_id', $this->user_id);
$sth->execute();

// Check if user exists in database.
if ($sth->fetch()->num_rows > 0)
{
// User exists in database, and is therefore valid.
return TRUE;
}
else
{
// User does not exist in database, and is therefore invalid.
return FALSE;
}
}
catch (PDOException $e)
{
pdo_error($e);
}
}

最佳答案

try catch 应该在函数之外

<?php

protected function authorized() {
// Attempt to grab the user from the database.
$sth = $dbh->prepare("
SELECT COUNT(*) AS num_rows
FROM users
WHERE user_id = :user_id
");

$sth->bindParam(':user_id', $this->user_id);
$sth->execute();

// Check if user exists in database.
if ($sth->fetch()->num_rows > 0) {
// User exists in database, and is therefore valid.
return TRUE;
}
else {
// User does not exist in database, and is therefore invalid.
return FALSE;
}
}

...

try {
authorized()
}
catch (PDOException $e) {
pdo_error($e);
}

不要在方法内部处理异常。您尝试 方法捕获如果发生异常。

关于php - MySQL PDO - try { block } 里面应该有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039722/

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