php——使用pdo连接mysql数据库

PDO是什么

PDO(PHP Data Objects)拓展是一个轻量级、而且统一的接口,用来在PHP中访问数据库。

PDO提供了一个数据访问抽象层,这意味着,不管你使用的是什么数据库,你都可以使用相同的函数去执行查询并获取数据。

PDO不提供数据库抽象,无法消除不同数据库之间的语法差异,如果你想要做到做到这一点,你必须使用另外的抽象层去实现。

PDO连接MySQL数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 数据库主机地址
const DB_HOST = 'mysqldb';
// 数据库名称
const DB_NAME = 'default';
// 数据库用户名
const DB_USER = 'root';
// 数据库密码
const DB_PASSWORD = 'devstack';
// 连接对象
private $pdo = null;
// 格式化连接字符串
$conStr = sprintf("mysql:host=%s;dbname=%s", self::DB_HOST, self::DB_NAME);
try {
$this -> pdo = new PDO($conStr, self::DB_USER, self::DB_PASSWORD);
} catch (PDOException $e) {
echo $e -> getMessage();
}

使用pdo连接对象执行插入、更新或者删除

1
2
3
4
5
6
7
8
9
10
11
$sql = "insert into tasks (subject, start_date, end_date, description)
values ('%s', '%s', '%s', '%s');";
$insertStatement = "";
// 构造插入语句
// date("Y-m-d H:i:s")的输出格式为yyyy-mm-dd hh:mm:ss
for ($i = 0; $i < 10; $i++) {
$insertStatement .= sprintf($sql, "睡觉", date("Y-m-d H:i:s"), date("Y-m-d H:i:s"), "测试");
}
// 使用exec方法执行插入
$this -> pdo -> exec($insertStatement);
// 更新和删除都可以使用exec(),返回值为表的影响条数

使用pdo连接对象执行查询

1
2
3
4
5
6
$sql = "select * from tasks";
foreach ($this -> pdo -> query($sql) as $row) {
print $row['subject'] . "\t";
print $row['start_date'] . "\t";
print $row['end_date'] . "\n";
}

使用query方法可以执行查询操作。通过foreach遍历查询结果。