<?php
$dbType = 'mysql';
$host = 'localhost';
$dbName = 'message';
$userName = 'root';
$password = 'root';
$dsn = "{$dbType}:host={$host};dbname={$dbName}";
try{
$pdo = new PDO($dsn, $userName, $password);
} catch(PDOException $e){
die('操作失败'.$e->getMessage());
}
// unset($pdo); //关闭PDO连接
// $pdo = null; //清空对象
/**
* insert语句
* PDO::exec()方法:返回受影响记录数
* PDO::lastInsertId():获取新增新主键id
* 其他写入操作与insert相同,不同的是insert有lastInsertId()方法
*/
function insert($pdo)
{
$sql = "insert message (user,title) values ('xxl', '哈哈')";
$num = $pdo->exec($sql);
$insertId = $pdo->lastInsertId();
if ($num > 0) {
dprint('添加了'.$num.'条记录,最后插入id为:'.$insertId);
}
}
// insert($pdo);
/**
* select语句
* 结果集用PDO::query()来获取
* 查询结果放在PDOStatement对象中
* setFetchMode(PDO::FETCH_ASSOC):读取模式
* PDOStatement::fetch()解析结果集
* 查询单条记录: $result->fetch()
* 查询所有记录: $result->fetchAll()
* 直接遍历结果集: $result->foreach($result as $row)
* 将结果集映射到对象再遍历: 类名与表名一直,属性与字段名一直,通过__get()魔术方法来实现查询
*/
function query($pdo)
{
$sql = 'select * from message';
$result = $pdo->query($sql);
if ($result && $result->rowCount()) {
$result->setFetchMode(PDO::FETCH_ASSOC);
// fetch方法
// while($row = $result->fetch()) {
// dprint($row);
// }
// fetchAll()
// $rows = $result->fetchAll();
// dprint($rows);
// 跳过结果集解析,直接遍历(不推荐)
foreach($result as $val) {
dprint($val);
}
}
}
// query($pdo);
/*
// 将结果集映射到对象再遍历
class message
{
private $id;
private $user;
private $title;
private $content;
private $lastdate;
public function __get($name)
{
return $this->$name;
}
}
$sql = 'select * from message';
$result = $pdo->query($sql);
$result->setFetchMode(PDO::FETCH_CLASS, 'message');
$rows = $result->fetchAll();
dprint($rows);
*/
/**
* 将动态数据与静态SQL语句进行分离
* SQL语句中用占位符":字段名",或者"?"
* PDO::prepare()准备预处理语句
* execute([真是替换数据])执行预处理语句
*/
function prepare($pdo)
{
$title = 'enen';
$id = 20;
$sql = 'update message set title=:title where id=:id';
$stmt = $pdo->prepare($sql);
$num = $stmt->execute([':title' => $title, ':id' => $id]);
if ($num) {
dprint('成功的更新了'.$num.'条记录');
}
}
prepare($pdo);
PHP扩展:PDP扩展操作
最新推荐文章于 2022-02-18 11:41:41 发布