php 中 PDO接口的使用
本文内容其实在PHP手册中都有,而且更加的深刻全面,这里只是个人做个笔记,呵呵
首先,先实例化pdo的对象
define('DB_HOST', 'localhost');
define('DB_PORT', 3306);
define('DB_NAME', 'oooo');
define('DB_CHARSET', 'utf8');
define('DB_USER', 'root');
define('DB_PASSWORD', 'hicc');
$dsn = sprintf("mysql:host=%s;dbname=%s;port=%d;charset=%s", DB_HOST, DB_NAME, DB_PORT, DB_CHARSET);
try{
$pdo = new PDO($dsn, DB_USER, DB_PASSWORD);
$pdo->query("set names " . DB_CHARSET);
}catch(PDOException $e){
error_log($e->errorInfo());
}
注:上面的define可以用普通的变量呀,至于为什么用define,是为了有一个全局的东西。
然后:执行一语sql语句,并返回它影响的行数
$sql =<<<SQL
insert into atm_service (name,dep_id,product_id) values ('a',1,2),('b',2,3)
SQL;
$count = $pdo->exec($sql);
insert into atm_service (name,dep_id,product_id) values ('a',1,2),('b',2,3)
SQL;
$count = $pdo->exec($sql);
这里会 $count=2
还可以:执行一语sql语句,返回一个结果关联数组
$sql =<<<SQL
select * from aaaa
SQL;
$rs_r = $pdo->query($sql);
while($rs_aos = $rs_r->fetchAll(PDO::FETCH_ASSOC)){
var_dump($rs_aos);
}
select * from aaaa
SQL;
$rs_r = $pdo->query($sql);
while($rs_aos = $rs_r->fetchAll(PDO::FETCH_ASSOC)){
var_dump($rs_aos);
}
还可以:执行一语sql语句,返回第一行第一列的值(多用于统计记录数,如分页中的总页数统计)
$sql =<<<SQL
select count(*) from aaaa
SQL;
$rs_r = $pdo->query($sql);
$count = $rs_r->fetch(PDO::FETCH_COLUMN));
select count(*) from aaaa
SQL;
$rs_r = $pdo->query($sql);
$count = $rs_r->fetch(PDO::FETCH_COLUMN));
返回表aaaa中有多少条记录
还可以,插入一条数据,并返回刚插入数据的ID
$SQL = <<<SQL
insert into atm_user(name,pass)
values('zhangyufeng','baobaoke')
SQL;
$count = $pdo->exec($SQL);
$user_id = $pdo->lastInsertId();
insert into atm_user(name,pass)
values('zhangyufeng','baobaoke')
SQL;
$count = $pdo->exec($SQL);
$user_id = $pdo->lastInsertId();
---------------------------------------------------
还有很多参数和方法参考手册,而且pdo的prepare方法其实更为常用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2008-02-21 Linux下的JDK选择