我正在使用PostgreSQL数据库启动一个项目。我知道mysql_*函数已经被弃用,最好使用PDO与MySQL数据库进行交互,但是对于PostgreSQL呢?pg_*函数是否已经被弃用或即将被弃用?PDO还是pg_*是与PostgreSQL交互的首选方法?哪一种方法更快,更安全?
pg_*
函数集并没有过时。但是使用PDO可以更自由地改变数据库类型。这种自由是通过使用相同的函数/方法访问几个不同的数据库来实现的。特定于数据库的工作将由使用的PDO驱动程序处理。
mysql
扩展已被标记为过时,而推荐使用 mysqli
而不是 PDO
。这是因为原始的旧的 mysql
扩展没有提供预处理语句或调用存储过程等功能。开发人员决定创建一个新的、改进的mysql扩展,并完全替换旧版本。ext/mysql已经弃用,因为它太古老了,而且有一个更好的继承者:ext/mysqli。
ext/pgsql没有被弃用,也没有继承者,它本身就很好,可以作为Postgres数据库的本地接口。
PDO是一种统一的接口,可以在同一API下抽象许多不同的数据库驱动程序。它同样也是一种可行的接口。原生的pgsql接口可能会提供一些特定于Postgres的功能,而PDO在其抽象接口中不支持这些功能。如果需要的话,pgsql API更“接近底层”,这可能是一个优点。但是,除非你知道你需要什么具体的东西,否则你可能找不出太大的区别。
个人喜欢PDO。如果您不确定,我建议您编写一些简单的测试脚本,并根据哪个感觉更舒适以及您更好理解的文档来选择其中之一。也就是说,除非您有其他决定因素,例如通过PDO提供的抽象轻松切换到其他数据库的灵活性。