叼起烟头 发表于 2015-8-27 08:20:39

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);  
  这里会 $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);
}  
  
  
  
  
  
  还可以:执行一语sql语句,返回第一行第一列的值(多用于统计记录数,如分页中的总页数统计)
  

$sql =<<<SQL
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();

---------------------------------------------------
  还有很多参数和方法参考手册,而且pdo的prepare方法其实更为常用。
  
页: [1]
查看完整版本: php 中 PDO接口的使用