博客列表 >PDO数据库连接、参数绑定及基本操作语法:2019年2月22日作业

PDO数据库连接、参数绑定及基本操作语法:2019年2月22日作业

连界现代周伟的博客
连界现代周伟的博客原创
2019年02月24日 21:36:381628浏览

PDO数据库连接、参数绑定等相关基础操作

1. PDO连接数据库的过程与参数设置

实例

<?php
//连接数据库的过程,也是创建PDO对象的过程
//连接参数:
//1.数据源:数据库类型:服务器名称;默认数据库 如:'mysql:host=localhost;dbname=php'
//2.用户名:默认'root'
//3.密码:默认'root'

//  一、连接数据库(创建PDO对象的过程)
$dsn = 'mysql:host=127.0.0.1;dbname=php';  //数据源
$user = 'root';                            //数据库主机用户名
$password = 'root';                        //数据库主机密码

$pdo = new PDO($dsn,$user,$password);      //新建一个PDO对象的方法来连接数据库
//  try {} catch ()结构
/*try {
    $pdo = new PDO($dsn,$user,$password);
} catch(PDOException $e) {
    exit('数据库连接错误' . $e->getMessage());
}*/

//var_dump($pdo);

// 二、 操作数据库
$sql = 'SELECT `id`,`name`,`age` FROM `staff` WHERE `age`>35';
foreach($pdo->query($sql) as $value) {
    echo '<pre>';
    print_r($value);
}

// 三、关闭数据库连接
//方法1:
//unset($pdo);

//方法2:
$pdo = null;

运行实例 »

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

2.如何创建PDO预处理对象:prepare()方法

实例

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

// 2.创建预处理对象(将SQL语句对象化)
$sql = 'SELECT * FROM `staff` WHERE `age` > :age AND `sex` = :sex'; //SQL语句模板  :age/ :sex这个叫命名点位符
$stmt = $pdo->prepare($sql);   //$stmt: 预处理对象

//var_dump($stmt);

echo $stmt->queryString;

// 3.关闭连接
$pdo = null;

运行实例 »

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

3. bindParam()与bindValue(),execute()直接传参的运用


实例

<?php
// 1. 连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
// 2. 创建预处理对象
$sql = 'SELECT `id`,`name`,`position` FROM `staff` WHERE `id`= :id';
$stmt = $pdo->prepare($sql);
// 3.执行一条预处理语句
//将变量 与SQL语句模板中的命名点位符进行绑定
//$id = 4;
//PDO::PARAM_INT是PDO常量,用来指定bindParam()参数的数据类型
//$stmt->bindParam(':id',$id,PDO::PARAM_INT);
//用bindValue()方法直接把值绑定到命名点位符
//$stmt->bindValue(':id',3,PDO::PARAM_INT);
//$res = $stmt->execute();
$res = $stmt->execute(['id' => 2]); //直接给execute()传参数的方式

if ($res === true) {
    //执行成员,就打印出这个员工信息
    //fetch()方法获取表中满足条件的第一个记录,并以一维数组的方式返回
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    echo '<pre>';
    print_r($result);
}

// 4.关闭连接
$pdo = null;

运行实例 »

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


4. fetch() 和 fetchAll()的区别与联系  及bindColumn()的功能

实例

<?php
// 1. 连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
// 2. 创建预处理对象
$sql = 'SELECT `id`,`name`,`position` FROM `staff` WHERE `id` BETWEEN :start AND :stop'; //sql语句模板
$stmt = $pdo->prepare($sql);

// 3.执行一条预处理语句
$res = $stmt->execute(['start'=>2,'stop'=>4]); //直接给execute()传参数的方式

//将结果集中的字段与变量进行绑定
$stmt->bindColumn('id',$id,PDO::PARAM_INT);
$stmt->bindColumn('name',$name,PDO::PARAM_STR,30);
$stmt->bindColumn('position',$position,PDO::PARAM_STR,30);

if ($res === true) {
    //执行成员,就打印出这个员工信息
    //fetch()方法获取表中满足条件的第一个记录,并以一维数组的方式返回。这个是一条记录
    //fetchAll()方法返回所有满足条件的记录,并以二维数组的方式返回。这个是记录集合(多条记录)
/*    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach($result as $val) {
        echo '<pre>';
        print_r($val);
    }*/

//用循环语句 定制输出格式并且可以解决查询结果有大量数据撑爆内存的情况
    while($stmt->fetch(PDO::FETCH_ASSOC)) {
        echo '编号:' . $id . ',姓名:' . $name . ',职位:' . $position . '<br>';
    }

}

// 4.关闭连接
$pdo = null;

运行实例 »

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



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