当我开始学习PHP时,我会写类似这里的查询语句:
mysql_query("SELECT * FROM `table`") or die(mysql_error());
如今最好的方法是什么,来达到与上述相同的效果?
据我理解,在当今的世界里,使用类、函数和面向对象编程,以这种方式运行一堆查询是非常低效的。我们应该怎样不同的做呢?
当我开始学习PHP时,我会写类似这里的查询语句:
mysql_query("SELECT * FROM `table`") or die(mysql_error());
如今最好的方法是什么,来达到与上述相同的效果?
据我理解,在当今的世界里,使用类、函数和面向对象编程,以这种方式运行一堆查询是非常低效的。我们应该怎样不同的做呢?
你应该使用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();