pdo 连接操作数据库

<?php    
/*
 * 开启pdo,php.ini扩展打开即可
预处理:
    1,?    绑定 $stmt->bindparam('1',$name,PDO::PARAM_STR);  //从1始
    2,:name   $stmt->bindparam(':name',$name);  第三个参数可写可不写
    3,execute(数组);
    如何获得受影响行,插入ID rowCount()   lastInsertId()
 
结果集遍历:4种 
    1,query来foreach   $result = $pdo->query()  可直接foreach $result
    2,bindColumn 绑定列  while($stmt->fetch())
    3,fetch     while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    4,fetchAll  $stmt->fetchall()  返回的是个数组
    如何获取字段[了解]
 */
 
try{
    $dsn = 'mysql:host=localhost;dbname=test';   //手册查询
    $pdo = new Pdo($dsn,'root','abc123');  //第四个参数 可初始化设置
    $pdo->query('set names utf8');  //字符集
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 
    //字段  select id,username,password from user
    $stmt = $pdo->prepare('desc user');
    $stmt->execute();
    $j = $stmt->columnCount();  //统计列数
     
    for($i=0;$i<$j;$i++){
        echo '<pre>';
        var_dump($stmt->getColumnMeta($i));
        echo '</pre>';
    }
    $stmt->setFetchMode(PDO::FETCH_NUM);
      
    //PDO::FETCH_NUM
    //PDO::FETCH_ASSOC
     
/*  可直接遍历
    $result = $pdo->query('select username,password from user');
    foreach($result as $key=>$value){
        echo $value['username'].$value['password'].'<br>';
    }
 */
/*  execute(数组);  fetchAll  遍历
    $stmt = $pdo->prepare('select username,password from user where id>:id and username=:username');
    $stmt->execute(array(':id'=>120,':username'=>'养生'));  //带不带冒号均可
    $result = $stmt->fetchAll();
    foreach($result as $value){
        echo $value['password'].'<br>';
    }
 */
/*  //:id  fetch遍历
    $stmt = $pdo->prepare('select username,password from user where id>:id');
    $stmt->bindparam(':id',$id,PDO::PARAM_INT);
    $id = 122;
    $result = $stmt->execute();
    while($row = $stmt->fetch()){
        echo $row['username'].$row['password'];
        echo '<br>';
    }
 */
/*  //绑定列 bindcolumn
    $stmt = $pdo->prepare('select username,password from user where id>?');
 
//  $stmt->bindparam('1',$p1,PDO::PARAM_STR);
//  $stmt->bindparam('2',$p2,PDO::PARAM_STR);
    $stmt->bindparam('1',$p3,PDO::PARAM_INT);
 
//  $p1 = 'username';
//  $p2 = 'password';
    $p3 = 120;
 
    $stmt->execute();
 
    $stmt->bindcolumn('username',$username);
    $stmt->bindcolumn('password',$password);
 
    while($stmt->fetch()){
        echo $username;
        echo $password;
        echo '<br>';
    }
 */
 
}catch(PDOException $e){
    echo $e->getMessage();
}
?>

你可能感兴趣的:(数据库,mysql,exception,user,query,扩展)