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方法其实更为常用。