PHP PDO 操作 MySQL 数据库
PDO
是 PHP 中用来访问数据库的一个轻量型的接口,相比起 Mysqlli
来说,PDO
可支持更多种的数据库,而 Mysqli
只支持 Mysql。通过 PDO
可实现使用同样的方法来访问不同的数据库,如果您建站初期使用的是 Mysql,但后期需要更换数据库的话,只需要修改一些配置信息,不用修改类和方法就可以实现更换数据库。
连接数据库
PHP代码:
<?php
const DATABASE_TYPE = 'mysql'; // 数据库类型
const DATABASE_SERVER = '127.0.0.1'; // 服务器地址
const DATABASE_NAME = 'bbs'; // 要连接的数据库名称
const USER_NAME = 'root'; // 数据库用户名
const PASSWORD = 'root'; // 数据库密码
const DSN = DATABASE_TYPE . ':host=' . DATABASE_SERVER . ';dbname=' . DATABASE_NAME; // 数据源
try {
$pdo = new PDO(DSN, USER_NAME,PASSWORD); // 创建PDO对象
}catch (PDOexception $e) {
echo $e->getMessage(); // 输出异常信息
}
上面的 DSN
常量是一个包含了数据库种类、数据库主机名、数据库名称 的字符串,下面是不使用拼接的写法:
const DSN = 'mysql:host=127.0.0.1;dbname=bbs';
除了上面的写法外,也还有其他的写法,在 PHP 的官网教程中有说明,不过感觉这种写法用的要多一些。
PDO()
对象 PDO
是操作数据库必须的一个对象,它包含了一系列的操作数据库的方法,下面是参数说明:
参数 | 类型 | 说明 |
---|---|---|
dsn | string | 包含了 数据库种类、数据库主机名、数据库名称的数据源 |
userName | string | 数据库用户名 |
password | string | 数据库密码 |
插入 & 删除 & 修改
PHP代码:
sql = "INSERT INTO user (userName, password) VALUES ('Charlie', '123456')"; // SQL语句
$result = $pdo->exec($sql); // 执行插入
echo $result; // 输出受影响的行数
exec()
方法 exec
执行 SQL 语句,返回受影响的行数。
参数 | 类型 | 说明 |
---|---|---|
sql | string | 要执行的SQL语句 |
exec
方法 还可以用于修改和删除数据,代码如下:
PHP代码:
// 把Charlie的密码修改为000000
$sql = "UPDATE user SET password = '000000' WHERE userName = 'Charlie'"; // SQL语句
$result = $pdo->exec($sql); // 执行修改
echo $result; // 输出受影响的行数
删除和修改都差不多,只是 SQL 语句不一样,这里就不写了。
查询
下面是查询的 PHP 代码:
PHP代码:
// 查询出user表的所有数据
$sql = "SELECT * FROM user"; // SQL语句
$data = $pdo->query($sql); // 执行查询语句
if ($data->rowCount() > 0) { // 判断查询到的行数是否大于0
$dataArr = $data->fetchAll(); // 把所有查询到的数据转换为数组
print_r($dataArr); // 输出数组
}else {
echo '未能查询到数据!';
}
查询到的数据:
Array
(
[0] => Array
(
[id] => 1
[0] => 1
[userName] => John
[1] => John
[password] => 123456
[2] => 123456
)
[1] => Array
(
[id] => 2
[0] => 2
[userName] => George
[1] => George
[password] => 123456
[2] => 123456
)
[2] => Array
(
[id] => 3
[0] => 3
[userName] => Charlie
[1] => Charlie
[password] => 000000
[2] => 000000
)
)
user 表:
id | userName | password |
---|---|---|
1 | John | 123456 |
2 | George | 123456 |
3 | Charlie | 000000 |
query()
方法 query
执行 SQL 语句,返回 PDOStatement
对象,可以理解为结果集。下面是 query
的参数:
参数 | 类型 | 说明 |
---|---|---|
sql | string | 要执行的SQL语句 |
PDOStatement
对象中又有一些方法:
rowCount()
方法 获取返回的行数,这个方法在一些数据库可能用不了,但在 Mysql 可以用。
fetchAll()
方法 返回一个包含结果集中所有行的数组,也就是把查询到的所有行转换为数组。
fetch()
方法 从结果集中获取下一行,如果只查询一行数据的话,就比较适合用这个方法。
下面是通过 fetch
方法 获取数据:
PHP代码:
// 查询出user表的所有数据
$sql = "SELECT * FROM user"; // SQL语句
$data = $pdo->query($sql); // 执行查询语句
$dataArr = $data->fetch(); // 获取一行
print_r($dataArr); // 输出数组
查询结果:
Array
(
[id] => 1
[0] => 1
[userName] => John
[1] => John
[password] => 123456
[2] => 123456
)
通过 fetch
方法 无论查询到多少行都只会获取一行。
以上就是 PHP PDO
最基本的增、删、改、查,如果要查看 PDO
的所有内容可以访问 PHP 官网。
相关文章:
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/192/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。