博客列表 >PHP基础之数据库操作一-2019年2月22日22点30分

PHP基础之数据库操作一-2019年2月22日22点30分

澜海的博客
澜海的博客原创
2019年02月24日 17:58:45746浏览

作业要求:

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

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

3. bindParam()与bindValue()

4. execute()直接传参

5. fetch() 和 fetchAll()的区别与联系

6. bindColumn()的功能

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

PDO 为PHP 数据对象

PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。

PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。

数据库的连接过程主要为3个步骤

(1) 创建pdo对象,连接数据库

(2) 准备SQL语句,创建预处理对象

(3) 执行SQL语句

创建pdo对象 主要需要3个参数

(1) 数据库连接串:含数据库类型、数据库主机IP、端口和数据库名称

(2) 连接数据库的用户

(3) 连接数据库的密码

测试代码如下:

实例

<?php
$dbms = 'mysql';     //数据库类型
$host = '127.0.0.1'; //数据库主机IP或主机名
$port = '3306';      //数据库端口号
$dbName = 'php';     //使用的数据库
$user = 'root';      //数据库连接用户名
$pass = 'root';      //对应的密码

$dsn = "$dbms:host=$host;port=$port;dbname=$dbName";

try {
    $dbh = new PDO($dsn, $user, $pass);  //初始化一个PDO对象
    echo "连接成功<br/>";

} catch (PDOException $e){
    die ("数据库连接错误: ".$e->getMessage() . '<br/>');
}

?>

运行实例 »

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

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

prepare()方法:准备要执行的语句,并返回语句对象

实例

$sql = 'select * from `staff`';
$stmt = $dbh->prepare($sql);

运行实例 »

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

3. bindParam()与bindValue()

bindParam() 绑定一个参数到指定的变量名

bindValue() 把一个值绑定到一个参数

代码如下:

实例

$sql1 = 'select `id`, `name`, `position` from `staff` where `id`= :id and `age` = :age' ;
$stmt1 = $dbh->prepare($sql1);
$id = 3;
$stmt1->bindParam(':id', $id, PDO::PARAM_INT) ;
$stmt1->bindValue(':age', 50, PDO::PARAM_INT);

运行实例 »

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

4. execute()直接传参

 执行一条预处理语句

成功时返回 TRUE, 或者在失败时返回 FALSE。

代码:

实例

$sql = 'select `id`,`name`,`position`  from `staff` where `id` between :start and :stop';

$stmt = $pdo->prepare($sql);

//将变量与sql语句模板中的命名占位符进行绑定
$id = 3;
$res = $stmt->execute(['start'=>2 ,'stop'=>4]);

运行实例 »

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

5. fetch() 和 fetchAll()的区别与联系

PDOStatement::fetch — 从结果集中获取下一行

PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组

代码:

实例

$sql2 = 'select `id`, `name`, `position` from `staff`';

$stmt2 = $dbh->prepare($sql2);

$stmt2->bindColumn('id', $id, PDO::PARAM_INT );
$stmt2->bindColumn('name', $name, PDO::PARAM_STR, 30);
$stmt2->bindColumn('position', $position, PDO::PARAM_STR, 30);

$stmt2->execute();

$stmt2->fetch(PDO::FETCH_ASSOC);
echo 'ID : ' . $id . 'NAME : ' .$name . 'POSITION : ' .$position;


echo '<br>';
$result = $stmt2->fetchAll();
foreach($result as $staff){
    print_r($staff);
    echo '<br>';
}
echo '<br>';

运行实例 »

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

6. bindColumn()的功能

绑定一列到一个 PHP 变量

上面已经演示过了,即把一个列绑定到一个变量上,以便输出或加工。

实例

$stmt2->bindColumn('id', $id, PDO::PARAM_INT );
$stmt2->bindColumn('name', $name, PDO::PARAM_STR, 30);
$stmt2->bindColumn('position', $position, PDO::PARAM_STR, 30);

运行实例 »

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


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