Blogger Information
Blog 29
fans 0
comment 0
visits 25303
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PDO数据库连接、参数绑定及基本操作语法:2019年2月22日作业
连界现代周伟的博客
Original
1629 people have browsed it

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;

运行实例 »

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



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