在介绍完pdo的基本操作之后,我们利用封装连接和读写操作,实现对数据库的读写操作。
下面是封装方法 function.php
<?php
//pdo对象初始化
function init(){
$pdo = @new pdo('mysql:host=localhost;port=3306;dbname=test','root','123456');
//错误处理
if(!$pdo){
die('连接认证失败');
}
//设置字符集
$res = $pdo->exec('set names utf8');
//echo $res;
if($res === false){
echo '设置字符集失败';
echo '<br />';
echo $pdo->errorCode();
echo '<br />';
echo $pdo->errorInfo()[2];
exit();
}
//返回pdo对象
return $pdo;
}
//pdo写操作
function pdo_exec($pdo,$sql){
//写
$res = $pdo->exec($sql);
if($res === false){
echo 'sql执行错误';
echo '<br />';
echo $pdo->errorCode();
echo '<br />';
echo $pdo->errorInfo()[2];
exit();
}
return $res;
}
//获取自增id
function pdo_id($pdo){
return $pdo->lastInsertId();
}
//读操作
function pdo_query($pdo,$sql){
//执行读操作
$stem = $pdo->query($sql);
if($stem === false){
echo 'sql执行错误';
echo '<br />';
echo $pdo->errorCode();
echo '<br />';
echo $pdo->errorInfo()[2];
exit();
}
//将获取到的pdoStatement对象返回
return $stem;
}
//获取到读操作结果,默认获取全部结果
function get($stem,$all = true){
if($all){
$res = $stem->fetchAll(PDO::FETCH_ASSOC);
}
else{
$res = $stem->fetch(PDO::FETCH_ASSOC);
}
return $res;
}
?>
以上封装方法中,我们实现了pdo连接数据库,写操作以及读操作。
接下来我们通过调用封装方法来测试一下,测试脚本 operate.php。
<?php
include_once 'function.php';
//pdo初始化
$pdo = init();
//写操作
$sql_write = "INSERT INTO test(`char`) VALUES(20)";
//echo $sql;die;
$res_write = pdo_exec($pdo,$sql_write);
//获取自增id
echo '自增id ' . pdo_id($pdo);
//读操作
$sql_read = 'select * from test';
$stem = pdo_query($pdo,$sql_read);
//获取读操作结果
$res_read = get($stem);
echo '<pre>';
var_dump($res_read);
?>
我们运行测试脚本,来看一下测试结果,浏览器输出结果。
我们看到,我们成功进行了写操作和读操作,以及写操作后的自增id和读操作结果(默认获取全部)。