使用PHP支持多种数据库类型

时间:2012-08-17 09:02:41

标签: php mysql sqlite class

我一直想要构建多数据库应用程序一段时间,我仍然找不到任何关于如何去做的事情。

我想知道的是处理SQLite和MySQL查询的最佳方法。对于我想要运行的每个查询,是否需要具有两个不同查询的IF语句?

或者有一种简单的方法可以将MySQL语句转换为SQLite吗?

2 个答案:

答案 0 :(得分:1)

使用PHP's PDO

您需要做的就是更改连接字符串,并且可以连接到不同的数据库。只要您的SQL不是使用特定于特定数据库的函数编写的,它就可以使用这些数据库:

CUBRID (PDO) — CUBRID Functions (PDO_CUBRID)
MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
Firebird/Interbase (PDO) — Firebird/Interbase Functions (PDO_FIREBIRD)
IBM (PDO) — IBM Functions (PDO_IBM)
Informix (PDO) — Informix Functions (PDO_INFORMIX)
MySQL (PDO) — MySQL Functions (PDO_MYSQL)
MS SQL Server (PDO) — Microsoft SQL Server Functions (PDO_SQLSRV)
Oracle (PDO) — Oracle Functions (PDO_OCI)
ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC)
PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL)
SQLite (PDO) — SQLite Functions (PDO_SQLITE)
4D (PDO) — 4D Functions (PDO_4D)

它支持您想要的所有功能以及许多防止注入攻击的内置物品以及更多功能。

编辑:eldbiz

建议的一些不错的链接供进一步阅读

http://php.net/manual/en/book.pdo.php http://www.php.net/manual/en/ref.pdo-sqlite.php http://www.php.net/manual/en/ref.pdo-mysql.php

答案 1 :(得分:0)

听起来你可能正在寻找类似Doctrine ...的ORM for PHP。

许多简单查询都可以在SQLite和Mysql中正常运行,但PDO不会修改您的查询,只提供连接到每个数据库并发送这些查询的机制。 ORM是一种将对象类型映射到数据库表并直接访问它们的方法。

你仍然需要"如果"在某些地方的陈述中,ORM不会自动决定在哪里保留或自动知道要在哪个数据库中查找数据。