Blogger Information
Blog 11
fans 0
comment 0
visits 8541
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础之数据库操作一-2019年2月22日22点30分
澜海的博客
Original
745 people have browsed it

作业要求:

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);

运行实例 »

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


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