Estoy trabajando en el aprendizaje de PDO y haciendo la transferencia desde las funciones PHP MySQL estándar. Sin embargo, tengo una pregunta. Con respecto a los bloques try {}
, ¿qué deberían incluir exactamente y qué deberían salir de él?MySQL PDO: ¿qué debería estar dentro de try {block}?
¿Debería todo lo que utiliza $sth-> ...
estar dentro de try {}
? ¿Debería ser solo desde el momento en que la declaración se prepara por completo hasta cuándo se ejecuta? Incluso menos que eso?
Cualquier ayuda sería muy apreciada. :)
Aquí hay un método de ejemplo que tengo en una clase. ¿Está organizado correctamente? Observe cómo puse todo dentro de try {}
. ¿Es eso incorrecto? Me parece incorrecto, pero no estoy seguro de cómo debería cambiarlo.
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);
}
}
¡Estaba haciendo la misma pregunta en el trabajo el otro día! ¿Todo va o no? – Drewdin
Muy buena pregunta. Ese tema es algo que muchos desarrolladores no saben –