博客列表 >PHP基础8作业08-30

PHP基础8作业08-30

theYon的博客
theYon的博客原创
2018年09月02日 23:10:53738浏览

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() 方法技巧运用。

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