---
title: "使用 PDO 驱动连接 OceanBase 数据库 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 使用 PDO 驱动连接 OceanBase 数据库 本文将介绍如何使用 PDO 驱动连接 OceanBase 数据库，实现创建表、插入数据等基本操作。 PDO，全称为 PHP Data Objects，是一个在 PHP 应用程序中用于提供数据访问抽象层的轻量级、一致性的接口。 适用版本 OceanBase 数据库所有…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 使用 PDO 驱动连接 OceanBase 数据库

更新时间：2026-02-01 12:31:47

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/300.develop/100.application-development-of-mysql-mode/200.sample-program-of-mysql-mode/500.php-of-mysql-mode/300.use-pdo-driver-to-connect-to-oceanbase.md)  

本文将介绍如何使用 PDO 驱动连接 OceanBase 数据库，实现创建表、插入数据等基本操作。 PDO，全称为 PHP Data Objects，是一个在 PHP 应用程序中用于提供数据访问抽象层的轻量级、一致性的接口。

## 适用版本

OceanBase 数据库所有版本。

## 前提条件

- 您已安装 php 和 php-mysql。
 - 您已安装 OceanBase 数据库并且创建了 MySQL 模式租户。

## 操作步骤

1. 检查并安装 php 和 php-mysql 环境。
 2. 新建 `podtest.php` 示例文件并配置数据库连接信息。
 3. 运行 `podtest.php` 文件并进行验证。

### 步骤一：检查并安装 php 和 php-mysql 环境

安装 PHP 和 php-mysql 环境，具体操作可参考 [Ext 驱动连接 OceanBase 数据库](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476571) 章节 **步骤一：检查并安装 php 和 php-mysql 环境。**

### 步骤二：修改 podtest.php 文件中的数据库连接信息

以 Linux 环境为例，可以使用 `vi podtest.php` 或者 `vim podtest.php` 命令编辑 `podtest.php` 文件，修改文件中的数据库连接信息，确保与实际情况相符。

```shell
[root]# vim podtest.php
<?php
$servername = "172.30.xx.xxx";
$port = "2881";
$username = "root@mysql";
$password = "xxxxxxx";
$dbname = "test";

// 创建连接
try {
    $conn = new PDO("mysql:host=$servername;port=$port;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

```

其中：

- `$servername` 指的是 MySQL 服务器地址。
 - `$port` 指的是 MySQL 服务器端口号。
 - `$username` 指的是 MySQL 用户名。
 - `$password` 指的是连接 MySQL 的密码。
 - `$dbname` 指的是要连接的数据库名称。

### 步骤三：运行 podtest.php 文件并进行验证

在 `podtest.php` 文件中故意填写错误的数据库名称，执行 `php podtest.php` 命令会返回如下报错信息：

```shell
[root]# php podtest.php
连接失败: SQLSTATE[42000] [1049] Unknown database 'test123'

```

填写正确的信息，提示连接成功：

```shell
[root]# php podtest.php
连接成功

```

测试建表及增删改查操作，示例如下：

```shell
[root]# vim podtest.php
<?php
$servername = "172.30.xxx.xxx"; // MySQL服务器地址
$port = "2881"; // MySQL服务器端口号
$username = "root@mysql"; // MySQL用户名
$password = ""; // MySQL密码
$dbname = "test"; // 要连接的数据库名称

// 创建连接
try {
    $conn = new PDO("mysql:host=$servername;port=$port;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

// 创建表
try {
    $sql = "CREATE TABLE myguests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    )";
    $conn->exec($sql);
    echo "表 myguests 创建成功";
} catch(PDOException $e) {
    echo "创建表错误: " . $e->getMessage();
}

// 插入数据
try {
    $sql = "INSERT INTO myguests (firstname, lastname, email)
    VALUES ('John', 'Doe', 'john@example.com')";
    $conn->exec($sql);
    echo "新记录插入成功";
} catch(PDOException $e) {
    echo "插入数据错误: " . $e->getMessage();
}

// 查询表
try{
    $sql = "SELECT id, firstname, lastname FROM myguests";
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    if ($stmt->rowCount() > 0) {
        // 输出数据
        while($row = $stmt->fetch()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
        }
    } else {
        echo "0 结果";
    }
} catch(PDOException $e) {
    echo "查询表错误: " . $e->getMessage();
}

// 删除表
try {
    $sql = "DROP TABLE myguests";
    $conn->exec($sql);
    echo "表 myguests 删除成功";
} catch(PDOException $e) {
    echo "删除表错误: " . $e->getMessage();
}

// 关闭连接
$conn = null;
?>

```

执行成功，返回如下示例：

```shell
[root]# php podtest.php
连接成功表 myguests 创建成功新记录插入成功id: 1 - Name: John Doe<br>表 myguests 删除成功

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
