使用 PDO 驱动连接 seekdb
本文将介绍如何使用 PDO 驱动连接 seekdb,实现创建表、插 入数据等基本操作。 PDO,全称为 PHP Data Objects,是一个在 PHP 应用程序中用于提供数据访问抽象层的轻量级、一致性的接口。
前提条件
- 您已安装 php 和 php-mysql。
- 您已安装 seekdb。
操作步骤
- 检查并安装 php 和 php-mysql 环境。
- 新建
podtest.php示例文件并配置数据库连接信息。 - 运行
podtest.php文件并进行验证。
步骤一:检查并安装 php 和 php-mysql 环境
安装 PHP 和 php-mysql 环境,具体操作可参考 Ext 驱动连接 seekdb 章节 步骤一:检查并安装 php 和 php-mysql 环境。
步骤二:修改 podtest.php 文件中的数据库连接信息
以 Linux 环境为例,可以使用 vi podtest.php 或者 vim podtest.php 命令编辑 podtest.php 文件,修改文件中的数据库连接信息,确保与实际情况相符。
[root]# vim podtest.php
<?php
$servername = "172.30.xx.xxx";
$port = "2881";
$username = "root";
$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指的是 seekdb 服务器地址。$port指的是 seekdb 服务器端口号。$username指的是 seekdb 用户名。$password指的是连接 seekdb 的密码。$dbname指的是要连接的数据库名称。
步骤三:运行 podtest.php 文件并进行验证
在 podtest.php 文件中故意填写错误的数据库名称,执行 php podtest.php 命令会返回如下报错信息:
[root]# php podtest.php
连接失败: SQLSTATE[42000] [1049] Unknown database 'test123'
填写正确的信息,提示连接成功:
[root]# php podtest.php
连接成功
测试建表及增删改查操作,示例如下:
[root]# vim podtest.php
<?php
$servername = "172.30.xxx.xxx"; // seekdb 服务器地址
$port = "2881"; // seekdb 服务器端口号
$username = "root"; // seekdb 用户名
$password = ""; // seekdb 连接密码
$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;
?>
执行成功,返回 如下示例:
[root]# php podtest.php
连接成功表 myguests 创建成功新记录插入成功id: 1 - Name: John Doe<br>表 myguests 删除成功