Blogger Information
Blog 16
fans 0
comment 0
visits 10783
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
mysqli+pdo操作-2018年9月6日
兔子的博客
Original
666 people have browsed it

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()方法获取结果集中下一行中指定列的值。


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post