博主信息
博文 16
粉丝 0
评论 0
访问量 13592
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
mysqli+pdo操作-2018年9月6日
兔子的博客
原创
832人浏览过

mysqli查询操作

实例

<?php
//连接数据库
require 'demo1.php';
//准备sql语句
$sql = "SELECT `id`,`name`,`salary`  FROM `staff` WHERE `salary` > ? ;";
//创建预处理对象
$stmt = $mysqli->stmt_init();

if ($stmt->prepare($sql)) {
//绑定参数
    $stmt->bind_param('i', $salary);

//设置参数
    $salary = 5000;

    if ($stmt->execute()) {
//获取结果并放在缓存区
        $stmt->store_result();
//将结果绑定在变量上
        $stmt->bind_result($id,$name, $salary);
//判断结果集不为空遍历
        if ($stmt->num_rows > 0) {

            while ($stmt->fetch()) {
                echo '<p>id:'.$id.'---姓名:' .$name.'---工资:'.$salary.'</p>';
            }
        } else {
            exit('<p>当前表中没有数据</p>');
        }
        $stmt->free_result();
    } else {
        exit($stmt->errno. ': ' . $stmt->error);
    }
} else {
    exit($stmt->errno. ': ' . $stmt->error);
}
$stmt->close();
$mysqli->close();
?>

运行实例 »

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

pdo操作

  1. pdo连接数据库

实例

<?php
//pdo连接数据库
$pdo=new PDO('mysql:host=127;db_name=php','root','root');

运行实例 »

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

2.pdo新增数据

实例

<?php
//pdo连接数据库
$pdo=new PDO('mysql:host=127;db_name=php','root','root');
//准备SQL语句用命名占位符
$sql="INSERT `user` SET `name`= :name , `email`= :email, `password`= sha1(:password)";
//创建预处理对象
$stmt=$pdo->prepare($sql);
//绑定参数
$data = ['name'=>'杨过','email'=>'223@php.cn','password'=>'123'];
$stmt->bindParam(':name',$data['name'],PDO::PARAM_STR);
$stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
$stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);
if ($stmt->execute()) {
    // rowCount(): 返回受影响的记录数量
    echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>';
} else {
    echo '<h3>添加失败</h3>';
    print_r($stmt->errorInfo());
    exit();
}

$stmt = null;
// 关闭连接
$pdo = null;

运行实例 »

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

3.pdo更新数据

实例

<?php

//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//准备SQL语句
$sql = "UPDATE `user` SET `email`= :email WHERE `id`= :id";

//创建预处理对象
$stmt = $pdo->prepare($sql);
$stmt->execute(['email'=>'123@qq.com','id'=>5]);
    echo '<h3>成功更新了'.$stmt->rowCount().'条记录</h3>';
$stmt = null;
// 关闭连接
$pdo = null;

运行实例 »

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

4.pdo删除数据

实例

<?php
//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//准备SQL语句
$sql = "DELETE FROM `user` WHERE `id`= :id";

//创建预处理对象
$stmt = $pdo->prepare($sql);
if ($stmt->execute(['id'=>11])) {
    // 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语句,占位符我们不再用?,用"命名占位符"
$sql = "SELECT `name`,`email`  FROM `user` WHERE `id` < :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
//执行查询
$stmt->execute(['id'=>5]);
//将结果集中的列绑定到变量上
$stmt->bindColumn('name', $name);
$stmt->bindColumn('email', $email);
//用列变量来遍历结果集
while ($stmt->fetch(PDO::FETCH_BOUND)) {
    echo '姓名: ',$name, ',  邮箱: ', $email, '<br>';
}

运行实例 »

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

问答1:pdo的优势?

1.预处理语句可避免sql注入

2.pdo可以使用相同的sql语句执行不同的数据库

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

获取结果集有三种方法,分为fetch() tchColumn() fetchAll()

fetch()方法

fetch()方法用于获取结果集的下一行

在PDO中通过预处理语句prepare()和execute()执行SQL查询语句,并且应用while()语句和fetch()方法完成数据的循环输出

fetchAll()方法

fetchAll()方法是为了获取结果集的所有行,其返回值是一个包含结果集中所有数据的二进制数组

fetchColumn()方法

fetchColumn()方法获取结果集中下一行指定列的值

通过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+教程免费学