ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
的*PHP数据对象*(PDO)扩展定义为在PHP访问数据库的轻量级的,一致的接口。每个实现PDO接口的数据库驱动程序都可以将特定于数据库的功能公开为常规扩展功能。请注意,您不能单独使用PDO扩展名执行任何数据库功能。您必须使用[特定](https://www.php.net/manual/en/pdo.drivers.php)于[数据库的PDO驱动程序](https://www.php.net/manual/en/pdo.drivers.php)来访问数据库服务器。 PDO提供了一个*数据访问*抽象层,这意味着,无论您使用的是哪个数据库,您都可以使用相同的功能来发出查询和获取数据。PDO并*没有*提供*数据库*抽象;它不会重写SQL或模拟缺少的功能。如果需要该功能,则应使用完整的抽象层。 PDO随PHP 5.1一起提供,并且可作为PHP 5.0的PECL扩展使用。PDO在PHP 5的核心中需要新的OO功能,因此不会在PHP的早期版本中运行。 PDO支持的数据库 | 驱动名称 | 支持的数据库 | | --- | --- | | [PDO\_CUBRID](https://www.php.net/manual/zh/ref.pdo-cubrid.php) | Cubrid | | [PDO\_DBLIB](https://www.php.net/manual/zh/ref.pdo-dblib.php) | FreeTDS / Microsoft SQL Server / Sybase | | [PDO\_FIREBIRD](https://www.php.net/manual/zh/ref.pdo-firebird.php) | Firebird/Interbase 6 | | [PDO\_IBM](https://www.php.net/manual/zh/ref.pdo-ibm.php) | IBM DB2 | | [PDO\_INFORMIX](https://www.php.net/manual/zh/ref.pdo-informix.php) | IBM Informix Dynamic Server | | [PDO\_MYSQL](https://www.php.net/manual/zh/ref.pdo-mysql.php) | MySQL 3.x/4.x/5.x | | [PDO\_OCI](https://www.php.net/manual/zh/ref.pdo-oci.php) | Oracle Call Interface | | [PDO\_ODBC](https://www.php.net/manual/zh/ref.pdo-odbc.php) | ODBC v3 (IBM DB2, unixODBC and win32 ODBC) | | [PDO\_PGSQL](https://www.php.net/manual/zh/ref.pdo-pgsql.php) | PostgreSQL | | [PDO\_SQLITE](https://www.php.net/manual/zh/ref.pdo-sqlite.php) | SQLite 3 及 SQLite 2 | | [PDO\_SQLSRV](https://www.php.net/manual/zh/ref.pdo-sqlsrv.php) | Microsoft SQL Server / SQL Azure | | [PDO\_4D](https://www.php.net/manual/zh/ref.pdo-4d.php) | 4D | ***** mysql连接 ``` $dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ``` Oracle连接 PDO("oci:dbname=//oracle远程IP:端口号/数据库名",用户名,密码);oci要小写 `$dsn_con="oci:host=192.168.4.12;dbname=ORCL;charset=UTF8;prot=1521";` 或者 `$dsn_con="oci:dbname=//192.168.4.12:1521/ORCL;charset=UTF8";` 连接本机 ``` $db_username = "youusername"; $db_password = "yourpassword"; $db = "oci:dbname=yoursid(数据库名)"; $conn = new PDO($db,$db_username,$db_password); $param = $_POST; $name = $param['module']; $file = $param['file']; $stmt = $conn->exec("INSERT INTO AL_MODULE (AL_MODULENAME, AL_MODULEFILE) VALUES ('$name', '$file')"); ```