PHP数据库连接注意事项

时间:2012-06-08 15:33:15

标签: php database pdo odbc

我正在用PHP编写一个新的应用程序,它将作为商业应用程序向公众发布。到目前为止,我的经验是PHP中的MySQL数据库。

最终用户负责提供数据库功能,PHP应用程序只需连接并使用它。

我的问题是,由于我不知道用户将使用哪个数据库,我将以何种方式在PHP中支持此功能?

我的问题是:

  • ODBC是正确的方法吗?我在下面提到ODBC,但如果ODBC不是正确的使用方法,则同样的问题适用于建议的方法。

  • 在PHP中使用ODBC函数而不是使用ODBC函数丢失任何功能/特性吗?

  • 我需要记住哪些与安全相关的内容?例如,我在以前的应用程序中使用了mysql_real_escape_string()。什么是ODBC等价物(甚至需要它?)

  • 我假设PHP可以使用ODBC连接到MySQL数据库? MySQL是否需要以某种方式配置才允许这样做?

  • 性能方面,ODBC是否可以接受?

3 个答案:

答案 0 :(得分:1)

  

我的问题是,因为我不知道用户将使用哪个数据库,   我在PHP中用什么方式支持这个?

以下是在PHP中使用数据库抽象的链接。

数据库抽象库的目的是在与多个数据库服务器通信时创建一致性。可以这样想,为了使您的应用程序支持多个数据库,它需要不同的代码行来对每个数据库执行相同的功能。使用抽象库,应用程序只需要一组代码即可与库支持的任何数据库进行通信。这大大增加了PHP应用程序可用的数据库服务器选项的数量。

http://www.hosting.com/support/programming/using-adodb-to-build-a-database-agnostic-php-application

答案 1 :(得分:1)

对于支持和性能,您最好的选择可能是PDO(PHP数据库对象)。这是PHP的核心,支持所有主要的数据库系统,本地处理转义字符串等等。

要保持不可知,你不能只使用MySQL,例如LIMIT补充说,所有SQL数据库都不支持。

但话说回来,先检查一下。如果客户端具有noSQL数据库,或者使用具有唯一连接字符串的Amazon(例如),那么您就遇到了麻烦。

答案 2 :(得分:1)

我可能会对PDO进行标准化;它抽象了大量的数据库并公开了一个统一的界面,用C语言编写,大多数人默认安装它。

这里谨慎;并非所有数据库都支持相同的SQL语法,因此您可能也必须为此配置。这很棘手,但一种方法是在PDO和类之间定义一个辅助类;这个帮助器类会将业务逻辑调用转换为实际的SQL。您可以提供适用于MySQL的一个并让您的用户创建其他用户吗? :)