博客列表 >PDO数据库操作——2018年9月9日22点19分

PDO数据库操作——2018年9月9日22点19分

Nevermore的博客
Nevermore的博客原创
2018年09月09日 22:23:07852浏览

实例

<?php
 $db=new mysqli('127.0.0.1','root','');
 if($db->errno)
 {
   echo   '连接失败'.$db->error;
 }
// else  echo  '连接成功';
 $db->set_charset('utf8');
 $db->select_db('php');
 $query="select id,name,gender,age from student where id <?";
   $stmt=$db->prepare($query);
   $stmt->bind_param('i',$id);
   $id=6;
   $stmt->execute();
   $stmt->store_result();
   $stmt->bind_result($id,$name,$gender,$age);
   while ($stmt->fetch())
   {
       echo 'id是'.$id.'名字是'.$name.'性别是'.$gender.'年纪是'.$age.'<br>';
   }

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
try
{
 $pdo= new PDO("mysql:host=127.0.0.1;dbname=php",'root','');
} catch (PDOException $e){
    echo 'Error:'.$e->getMessage();
}
$pdo->query('set names utf8');
//echo '新增数据';
//$sql="insert into user values (:id,:name,:email,sha1(:password))";
//$stmt=$pdo->prepare($sql);
//if( $stmt->execute(['id'=>'','name'=>'我不会太刀','email'=>'taidao@qq.com','password'=>123]))
//{
//    echo  '受影响记录:'.$stmt->rowCount();
//}
//else exit('操作失败');

//echo '<hr>';
//echo '删除数据';
//$sql="delete from  user where  id=:id";
//$stmt=$pdo->prepare($sql);
//if( $stmt->execute(['id'=>4]))
//{
//    echo  '受影响记录:'.$stmt->rowCount();
//}
//else exit('操作失败');

//$sql="update user set name=:name where id=:id ";
//$stmt=$pdo->prepare($sql);
//if($stmt->execute(['name'=>'我超会太刀','id'=>5]))
//{
//    echo  '受影响记录:'.$stmt->rowCount();
//}
//else exit('操作失败');

$sql="select id,name,email,password from user";
$stmt=$pdo->prepare($sql);
if($stmt->execute())
{
  if($stmt->rowCount()>0)
  {

//      foreach ($stmt->fetchAll(PDO::FETCH_ASSOC)as $current)
//      {
//          echo'id是:'.$current['id'].',名字是:'.$current['name'].'<br>';
//      }

       while(  $res=$stmt->fetch(PDO::FETCH_ASSOC) )
       {
           echo'id是:'.$res['id'].',名字是:'.$res['name'].',email是:'.$res['email'].'<br>';
       }
  }
  else exit('没有记录');
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

QQ图片20180909222146.png

$stmt=$db->prepare($query);  生成一个后续可操作的对象

$stmt->bind_param()绑定变量的参数

$stmt->execute() 执行语句

$stmt->affected_rows  受影响的行数

$stmt->errno  错误代码  $stmt->error 错误信息

$stmt->close() 关闭对象

$db->close() 关闭连接


关于二维数组遍历

$data[] = ['name'=>'杨过1','salary'=>4000];

$data[] = ['name'=>'小龙女1','salary'=>5000];

$data[] = ['name'=>'金轮法王1','salary'=>8000];

foreach($data as $staff)                  //分别取出数据中的一条,

{

    $name=$staff['name'];               //然后对里面的一维数组把值取出来

    $salary=$staff['salary'];

}



查询语句  

$stmt=$db->stmt_init();                   //初始化一条语句并返回一个用于mysqli_stmt_prepare(调用)的对象  注意括号内没有参数,以下内容都是建立在此基础上

$stmt->prepare($query)                   //预处理对象的prepare 方法来检测sql语句

$stmt->store_result()                        //将查询结果放入缓存区,括号内没有参数

$stmt->bind_result($id,$name,$salary);                        //将结果集的列绑定到变量上,

$stmt->num_rows;                             // Return the number of rows in statements result set   返回结果集的行数,判断是否为空

$stmt->fetch                                      //每次获取一条记录,并将指针下移、

$stmt->free_result()                            // 释放结果集


熟练PDO连接

pdo 占位符不用?,用命名占位符

pdo 查询,$stmt->fetchAll() 获取所有数据 ,返回的是一个二维数组(一般不用,数据太多导致爆仓)

$stmt->fetch  返回一条数据,将关联和索引都显示。     $stmt->fetch(PDO::FETCH_ASSOC)  里面的参数表示只获取关联的数组,   $stmt->fetch(PDO::FETCH_BOUND)这个参数是将结集中列的值给绑定的变量,变量用$stmt->bindcolumn()绑定注意与bindparam区分

PDO 查询  语句执行后 直接循环遍历,

$stmt->fetchColumn()  获取一行一列的值,  括号中的参数从0开始,0表示第一列,1表示第二列,指针会下移

$stmt->rowcount()返回的仅仅是DELETE INSERT UPDATE 写操作受影响的行数,而不能返回select受影响的行数,应用select count(*)语句计算


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议