博主信息
博文 18
粉丝 0
评论 0
访问量 13531
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
MySQLi与PDO操作数据库2018年8月30日作业
吕小布的博客
原创
802人浏览过

MySQLi面向对象中的查询操作

实例

<?php
require 'deno1.php';
//sql查询
$sql="select id,name,age from msg where age>?;";
//创建初始化预处理对象
$stmt=$mysqli->stmt_init();
if ($stmt->prepare($sql)){
    //绑定参数
    $stmt->bind_param('i',$age);
    //设置参数
    $age=18;
    //执行
    if($stmt->execute()){
        //获取结果放到缓存区
        $stmt->store_result();
        //再将结果绑定到变量上
        $stmt->bind_result($id,$name,$age);
        //结果不为空则遍历
        if($stmt->num_rows>0){
            //每遍历一次指针下移
            while ($stmt->fetch()){
                echo 'id:'.$id.'--姓名:'.$name.'--年龄:'.$age;
            }
        }else{
            die('当前无数据');
        }
        //释放结果
        $stmt->free_result();

    }else {die('链接失败'.$stmt->errno.':'.$stmt->error);}


}else{
    die('链接失败'.$stmt->errno.':'.$stmt->error);
}
$stmt->close();
$mysqli->close();

运行实例 »

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

PDO对象,兼容更多数据库,同样的语法访问不同数据库。

PDO 连接数据库

实例

<?php

$dns='mysql:host=127.0.0.1;dbname=php';
$user='root';
$pass='root';

try{
    $pdo=new pdo($dns,$user,$pass);
    echo '连接成功';
}catch (pdoexception $e){
    die('连接失败'.':'.$e->getMessage());
}
$pdo=null;

运行实例 »

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

4. 编程:PDO新增数据

实例

<?php

$dns='mysql:host=127.0.0.1;dbname=php';
$user='root';
$pass='root';

try{
    $pdo=new pdo($dns,$user,$pass);
    echo '连接成功';
}catch (pdoexception $e){
    die('连接失败'.':'.$e->getMessage());
}

$sql="insert into msg set name=:name,age=:age";
//创建预处理对象
$stmt=$pdo->prepare($sql);
//绑定参数
$data=['name'=>'小小布','age'=>8];
$stmt->bindparam(':name',$data['name'],PDO::PARAM_STR);
$stmt->bindParam (':age',$data['age'],PDO::PARAM_INT);
if ($stmt->execute()) {
    // rowCount(): 返回受影响的记录数量
    echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>';
} else {
    echo '<h3>添加失败</h3>';
    print_r($stmt->errorInfo());
    exit();
}


$stmt = null;
$pdo=null;

运行实例 »

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

5.编程: PDO更新数据

实例

<?php

$pdo=new pdo('mysql:host=127.0.0.1;dbname=php','root','root');

$sql="update msg set name=:name where id=:id";
//创建预处理对象
$stmt=$pdo->prepare($sql);
$stmt->execute(['name'=>'小小布','id'=>5]);
echo '更新成功'.$stmt->rowCount().'条记录';



$stmt = null;
$pdo=null;

运行实例 »

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

6. 编程: PDO 删除数据

实例

$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
$sql = "DELETE FROM `msg` WHERE `id`= :id";
$stmt = $pdo->prepare($sql);

if ($stmt->execute(['id'=>5])) {
    echo '<h3>成功删除了'.$stmt->rowCount().'条记录</h3>';
} else {
    echo '<h3>无删除</h3>';
    print_r($stmt->errorInfo());
    exit();
}

$stmt = null;
$pdo = null;

运行实例 »

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

7. 编程:PDO查询数据

实例

<?php

$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
$sql = "SELECT `name`,`age`  FROM `msg` WHERE `id` < :id";
$stmt = $pdo->prepare($sql);

$stmt->execute(['id'=>6]);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo var_export($row),'<br>';
}

运行实例 »

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

8. 问答: 获取结果集记录数量的正确方式是什么?

PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。如果上一条由相关 PDOStatement 执行的 SQL 语句是一条 SELECT 语句,有些数据可能返回由此语句返回的行数。但这种方式不能保证对所有数据有效,且对于可移植的应用不应依赖于此方式

通过SELECT COUNT(*) 语句来定义,然后用 fetchColumn() 来取得返回的行数。这样应用程序才能正确执行。

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学