PHP:用于错误处理的"or die();"的现代版本



当我刚开始学习PHP时,我会编写类似于这里的查询语句:

mysql_query("SELECT * FROM `table`") or die(mysql_error());

当今达到上述效果的最好方法是什么?

在我的理解中,在当今有类、函数和通用OOP的世界里,以这种方式运行一堆查询是非常低效的。我们应该做些什么改变?

你应该使用PDO,它会抛出可以被捕获的异常,或者如果没有被捕获,它们会像die()一样杀死脚本。

$db = new PDO(
    'mysql:dbname=database;host=localhost',
    'root',
    '',
    array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION
    )
);
$db->query('SELECT INVALID FOO'); // Exception!!!
this_never_gets_run();

相关内容

最新更新