Blogger Information
Blog 34
fans 1
comment 0
visits 23176
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础8作业08-30
theYon的博客
Original
739 people have browsed it

PHP基础8
主要知识点

1)PDO 的运用 (PHP DATA OBJECT) PHP数据对象

 2)PDO 的优势

* 1.PDO真正的以底层实现的统一接口数库操作接口,不管后端使用的是何种数据库,

* 如果代码封装好了以后,应用层调用基本上差不多的,当后端数据库更换了以后,应用层代码基本不用修改

* 2.PDO支持更高级的DB特性操作,如:存储过程的调度等,mysql原生库是不支持的.

* 3.PDO是PHP官方的PECL库,兼容性稳定性必然要高于MySQL Extension,可以直接使用 pecl upgrade pdo 命令升级.

* 4.PDO可以防止SQL注入,确保数据库更加安全

3)获取结果集记录数量的正确方式是什么?

* 获取结果集记录数量的正确方式是什么?

* 通过sql语句查询数据库某个表的总数居量

* (select count(*) from staff)

* 然后通过pdo的对象方法fetchColumn()获取总量

代码

db.php

<?php
// PDO 连接数据库
$user = 'root';
$pass = 'root';
$dsn = 'mysql:host=127.0.0.1; dbname=php';
try {

    $pdh = new PDO($dsn, $user, $pass);
    echo '<h3>连接成功</3><br>';

} catch (PDOException $e) {
    die('Connect ERROR! : '. $e->getMessage());
}

demo2.php

<?php

require './pdo/db.php';

// 新增
// $sql_add = "INSERT IGNORE `user` SET `user_name`= :name , `email`= :email, `password`= sha1(:password)";
// //创建预处理对象
// $stmt = $pdh->prepare($sql_add);
// //绑定参数
// $data = ['name'=>'jack','email'=>'jack@163.com','password'=>'123456'];
// $stmt->bindParam(':name',$data['name'],PDO::PARAM_STR);
// $stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
// $stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);

// // 执行
// if ($stmt->execute()) {
//     // 添加一条记录
//     echo '<br>add: '.$stmt->rowCount().' count<br>';
    
// } else {
//     echo '<span style="color:red">fail</span><br>'.$stmt->errorInfo();
//     exit();
// }

// // 更新
// $sql_update = "UPDATE `user` SET `email`= :email, `password`= sha1(:password) WHERE `user_id`= :id";
// //创建预处理对象
// $stmt = $pdh->prepare($sql_update);
// //绑定参数
// $data = ['id'=>3,'name'=>'jack','email'=>'jack@google.com','password'=>'123'];

// $stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
// $stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);
// $stmt->bindParam(':id',$data['id'],PDO::PARAM_INT);

// // 执行
// if ($stmt->execute()) {
//     // 更新一条记录
//     echo '<br>update: '.$stmt->rowCount().' count<br>';
    
// } else {
//     echo '<span style="color:red">fail</span><br>'.$stmt->errorInfo();
//     exit();
// }

// 查询
// $sql_sel = "SELECT `user_name`,`email`  FROM `user` WHERE `user_id` >= :id";
// //创建预处理对象
// $stmt = $pdh->prepare($sql_sel);
// //绑定参数
// $data = ['id'=>2,'name'=>'jack','email'=>'jack@google.com','password'=>'123'];

// $stmt->bindParam(':id',$data['id'],PDO::PARAM_INT);

// // 执行
// if ($stmt->execute()) {
//     // 查询结果
//     while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//         echo var_export($row),'<br>';
//     }
    
// } else {
//     echo '<span style="color:red">fail</span><br>'.$stmt->errorInfo();
//     exit();
// }

// 删除
// $sql_del = "DELETE FROM `user` WHERE `user_id`= :id";
// //创建预处理对象
// $stmt = $pdh->prepare($sql_del);
// //绑定参数
// $data = ['id'=>2,'name'=>'jack','email'=>'jack@google.com','password'=>'123'];

// $stmt->bindParam(':id',$data['id'],PDO::PARAM_INT);

// // 执行
// if ($stmt->execute()) {
//     // 查询结果
//     echo '<br>delete: '.$stmt->rowCount().' count<br>';
    
// } else {
//     echo '<span style="color:red">fail</span><br>'.$stmt->errorInfo();
//     exit();
// }

/**
 * 获取结果集记录数量的正确方式是什么?
 * 通过sql语句查询数据库某个表的总数居量
 * (select count(*) from staff)
 * 然后通过pdo的对象方法fetchColumn()获取总量
 */
$sql_sum = "SELECT COUNT(*)  FROM `staff`";
$stmt = $pdh->prepare($sql_sum);
if ($stmt->execute()) {
    // 查询结果
    echo '<br>总量: '.$stmt->fetchColumn().' 条<br>';
    
} else {
    echo '<span style="color:red">fail</span><br>'.$stmt->errorInfo();
    exit();
}

// 关闭连接
$stmt = null;
$pdo = null;

总结
       主要是对PDO 进行基础操作,以及对fetchColumn() 方法技巧运用。

Correction status:Uncorrected

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