PDO操作
- 数据库配置文件database.php
<?php
return[
'type'=>'mysql',
'host'=>'localhost',
'dbname'=>'user',
'port'=>'3306',
'username'=>'root',
'password'=>'root',
'charset'=>'utf8'
];
- 数据库链接文件catenate.php
<?php
namespace pdo_edu;
use Exception;
use PDO;
$dbConfig = require 'database.php';
extract($dbConfig);
$dsn = $type. ':host='. $host.';dbname='.$dbname;
try {
$db = new PDO($dsn,$username,$password);
} catch (Exception $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
- 增删改查
增 INSERT
<?php
//1.命名参数+关联数组 语义化较强
namespace pdo_edu;
use PDO;
//1.引入数据库配置文件
require 'config/catenate.php';
//2.执行数据库操作语句
// 增删改查
// 1.增 INSERT
// 创建执行语句
// INSERT 表名 SET 字段名=内容
$sql = "INSERT `user_list` SET `name`=:usname, `email` = :email, `age`= :age ";
// 预处理语句
$stmt = $db->prepare($sql);
//插入的数据:bindParam使用引用绑定限制类型
$stmt->bindParam(':usname', $name, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':age', $age, PDO::PARAM_INT);
list($name,$email,$age)=['小白','xiaobai@qq.com',25];
// 执行数据
if($stmt->execute()){
//lastInsertId():插入成功的ID
echo '新增成功, id='.$db->lastInsertId() . '<br>';
}else{
echo '执行失败';
//打印错误信息
print_r($stmt->errorInfo());
}
//3.关闭数据库链接
$db = null;
- 删除 DELETE
<?php
//1.命名参数+关联数组 语义化较强
namespace pdo_edu;
use PDO;
//1.引入数据库配置文件
require 'config/catenate.php';
//2.执行数据库操作语句
// 增删改查
// 3.删 DELETE
// 创建执行语句
// DELETE 表名 SET 字段名=内容
$sql = "DELETE FROM `user_list` where `id`=:id ";
// 预处理语句
$stmt = $db->prepare($sql);
//插入的数据
$data = ['id'=>3];
// 执行数据
if($stmt->execute($data)){
//rowCount():执行成功的记录数量
if($stmt->rowCount()){
echo '删除成功, 有'.$stmt->rowCount() . '已被删除<br>';
}else{
echo '没有记录被删除';
}
}else{
echo '执行失败';
//打印错误信息
print_r($stmt->errorInfo());
}
//3.关闭数据库链接
$db = null;
- 修改更新UPDATE
<?php
namespace pdo_edu;
use PDO;
//1.引入数据库配置文件
require 'config/catenate.php';
//2.执行数据库操作语句
// 增删改查
// 2.改 UPDATE
// 创建执行语句
// UPDATE 表名 SET 字段名=内容 where 条件内容
$sql = "UPDATE `user_list` SET `name`=:name, `email` = :email where `id` = :id";
// 预处理语句
$stmt = $db->prepare($sql);
//更新的数据
$data = ['name'=>'小白','email'=>'xiaobai@qq.com','id'=>7];
if(stripos($sql,'where') === false){
exit('禁止非法操作无条件更新');
}
// 执行数据
if($stmt->execute($data)){
//rowCount():执行成功的记录数量
if($stmt->rowCount()>0){
echo '修改成功, 有'.$stmt->rowCount() . '条记录被更新<br>';
}else{
echo '没有记录被更新';
}
}else{
echo '执行失败';
//打印错误信息
print_r($stmt->errorInfo());
}
//3.关闭数据库链接
$db = null;
- 查询 SELECT
<?php
//1.fetchAll+foreach
namespace pdo_edu;
use PDO;
//1.引入数据库配置文件
require 'config/catenate.php';
//2.执行数据库操作语句
// 增删改查
// 3.查 SELECT
// 创建执行语句
// SELECT 字段名 FROM 表明 where
$sql = "SELECT `id`,`name`,`age`,`email`FROM `user_list` WHERE `age`>20";
// 预处理语句
$stmt = $db->prepare($sql);
// 执行数据
// print_r($arr);
if($stmt->execute()){
$arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
// print_r($arr);
foreach($arr as $v){
printf('<pre>%s</pre>',print_r($v,true));
}
}else{
echo '执行失败';
//打印错误信息
print_r($stmt->errorInfo());
}
//3.关闭数据库链接
$db = null;
//-------
///第二种方式
<?php
//1.fetch+while
namespace pdo_edu;
use PDO;
//1.引入数据库配置文件
require 'config/catenate.php';
//2.执行数据库操作语句
// 增删改查
// 3.查 SELECT
// 创建执行语句
// SELECT 字段名 FROM 表明 where
$sql = "SELECT `id`,`name`FROM `user_list` WHERE `id`>0";
// 预处理语句
$stmt = $db->prepare($sql);
// 执行数据
// print_r($arr);
if($stmt->execute()){
while($arr = $stmt->fetch(PDO::FETCH_ASSOC)){
print_r($arr);
}
}else{
echo '执行失败';
//打印错误信息
print_r($stmt->errorInfo());
}
//3.关闭数据库链接
$db = null;
原创文章,作者:huixiang,如若转载,请注明出处:http://hui-xiang.cn/archives/199.html