博客列表 >PDO基本操作语法作业-2018-9-7

PDO基本操作语法作业-2018-9-7

THPHP
THPHP原创
2018年09月07日 20:41:19935浏览

PDO 的优势:  

PDO 是php数据对象,PDO是php所有操作的数据库一个统一的接口。php不会识别数据库:mysql,Oracle等。却识别PDO。

PDO代码比MySQL数据库更加简洁,简化点。

1、PDO数据库连接:

实例

<?php

header('Content-type:text/html;charset=utf-8');// 设置编码
$host = 'mysql:host=127.0.0.1;name=php';
$user = 'root';
$pass = 'root';
// PDO 创建
$pdo = new PDO($host,$user,$pass);
// PDO连接判断
try{
    $pdo = new PDO($host,$user,$pass);
//    echo '<h2>连接成功</h2>';
}catch(PDOException $s){
    die('连接失败:'.$s->getMessage());
}
// 关闭连接
$pdo = null;

运行实例 »

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

2、PDO增加数据:

实例

<?php
header('Content-type:text/html;charset=utf-8');// 设置编码
// PDO 数据库连接
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

// 创建预处理对象并增加数据
$stmt = $pdo->prepare("INSERT `test` SET `name`=:name,`sex`=:sex");
$stmt->execute(['name'=>'金龙1','sex'=>'男']);
echo '成功添加:'.$stmt->rowCount().'条数据';

// 关闭连接
$pdo = null;

运行实例 »

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

3、PDO更新数据:

实例

<?php
header('Content-type:text/html;charset=utf-8');// 设置编码
// PDO 数据库连接
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

// 创建预处理对象并增加数据(更新id为109的数据)
$stmt = $pdo->prepare("UPDATE `test` SET `name`=:name WHERE `id`=:id");

$stmt->execute(['name'=>'金龙哈哈','id'=>'109']);
echo '成功更新:'.$stmt->rowCount().'条数据';


// 关闭连接
$pdo = null;

运行实例 »

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

4、PDO 删除数据:

实例

<?php
header('Content-type:text/html;charset=utf-8');// 设置编码
// PDO 数据库连接
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

// 创建预处理对象并增加数据
$stmt = $pdo->prepare("DELETE FROM `test` WHERE `id`=:id");

$stmt->execute(['id'=>109]);
echo '成功删除:'.$stmt->rowCount().'条数据';

// 关闭连接
$pdo = null;

运行实例 »

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

5、PDO查询数据:

实例

<?php
header('Content-type:text/html;charset=utf-8');// 设置编码
// PDO 数据库连接
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

// 创建预处理对象并增加数据(查询字段 为 name salary,并且字段 id为条件)
$stmt = $pdo->prepare("SELECT `name` `salary` FROM `test` WHERE `id`>:id");
// 查询 id 字段为 大于100 的数据
$stmt->execute(['id'=>100]);
while($row = $stmt->fetch(Pdo::FETCH_ASSOC)){
    echo var_export($row),'<br>';
}

// 关闭连接
$pdo = null;

运行实例 »

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

6、获取结果集记录数量的正确方式是什么?

采用 prepare("select count(*) from staff where salary > :salary"); 方法

实例

<?php
header('Content-type:text/html;charset=utf-8');// 设置编码
// PDO 数据库连接
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

// 创建预处理对象
$stmt = $pdo->prepare("select count(*) from `test` where salary > :salary");
$stmt->execute(['salary'=> 20000]);
echo '大于2000的人数:'.$stmt->fetchColumn();//
// 关闭连接
$pdo = null;

运行实例 »

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

7、MySQLi面向对象中的查询操作:

实例

<?php
header('Content-Type:text/html;charset=utf-8');
require 'demo.php'; // 导入文件,数据库连接
// sql 查询语句
$sql = "SELECT `id`,`name`,`salary` FROM `test` WHERE `salary` >?;";
// 创建预处理对象
$stmt = $mysqli->stmt_init();

if($stmt->prepare($sql)){
    // 数据类型为 int 与salary字段绑定
    $stmt->bind_param('i',$salary);
    //    设置salary值
    $salary = 2000;
    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();

运行实例 »

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


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