登录  /  注册
博主信息
博文 29
粉丝 0
评论 0
访问量 24313
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PDO数据库连接、参数绑定及基本操作语法:2019年2月22日作业
连界现代周伟的博客
原创
1579人浏览过

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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学