Blogger Information
Blog 18
fans 0
comment 0
visits 9875
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MySQLi与PDO操作数据库2018年8月30日作业
吕小布的博客
Original
552 people have browsed it

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() 来取得返回的行数。这样应用程序才能正确执行。

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