批改状态:未批改
老师批语:
作业1:编程:MySQLi面向对象中的查询操作
<?php
/**
* Created by PhpStorm.
* User: Core
* Date: 2018/9/2
* Time: 18:18
*/
// 查询操作
require 'connect.php';
//准备一套SQL语句
// $sql = "select `name`,`sex`,`class` from `student` where `id`< ? ";
$sql = "select `name`,`sex`,`class` from `student` where `bursary`> ? ";
// $stmt = $mysqli->prepare($sql);
//创建预处理对象
$stmt = $mysqli->stmt_init();
if($stmt->prepare($sql)){ //判断一下预处理语句成功了没
//成功了,就开始绑定参数
$stmt->bind_param('i',$bursary);
//给参数赋值
$bursary = 1000;
if($stmt->execute()){
//执行成功,下一步
$stmt->store_result();//将结果放到结果集里
$stmt->bind_result($name,$sex,$class); //将结果集绑定到变量上
//判断以下结果集是否为空,空是不能变量的
if($stmt->num_rows > 0){
//不为空则遍历输出
while($stmt->fetch()){ //取出每条数据,并下移
echo $name.'--'.$sex.'--'.$class.'<br>';
}
}else{
//为空则提示空
echo 'result is null';
}
}else{
exit($stmt->errno.':'.$stmt->error);
}
}else{
exit($stmt->errno.':'.$stmt->error);
}
//注销stmt对象
$stmt->close();
//关闭连接
$mysqli->close();点击 "运行实例" 按钮查看在线实例
本地运行截图:

作业2:问答: PDO 的优势
代码量减少
安全
作业3: 编程:PDO 连接数据库
<?php
/**
PDO:php data object
*
*/
$dsn = 'mysql:host=localhost; dbname=stu'; //数据源:主机IP/名字;默认数据库
$user = 'root';
$pwd = 'root';
try {
$pdo = new PDO($dsn,$user,$pwd);
echo 'connect success!!!';
} catch (PDOException $e){
die('error!:'.$e->getMessage());
}
// 关闭pdo连接
//$pdo = null;
//unset($pdo);点击 "运行实例" 按钮查看在线实例
作业4:编程:PDO新增数据
<?php
/**
pdo 插入数据
*/
/*//require 'pdo.php';
//pdo方式连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=stu','root','root');
//准备SQL预处理语句
$sql = "insert into `student` set `name`= :name,`sex`= :sex,`class`= :class,`bursary`= :bursary";
//创建预处理对象
$stmt = $pdo->prepare($sql);
//绑定参数
//用数组存储数据:
$data = ['name'=>'tom','sex'=>'male','class'=>'1A','bursary'=>900];
$stmt->bindParam(':name',$data['name'],PDO::PARAM_STR); //:name 和data['name']对应,最后是参数类型
$stmt->bindParam(':sex',$data['sex'],PDO::PARAM_STR);
$stmt->bindParam(':class',$data['class'],PDO::PARAM_STR);
$stmt->bindParam(':bursary',$data['bursary'],PDO::PARAM_STR);
if ($stmt->execute()){
echo 'add'.$stmt->rowCount().'item';
}else{
echo ' fail to add !';
print_r($stmt->errorInfo());//打印错误信息
exit(); //
}
$stmt = null;
$pdo = null;*/
//最简单的方式:
//连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=stu','root','root');
//创建预处理
$stmt = $pdo->prepare("insert into `student` set `name`= :name,`sex`= :sex,`class`= :class,`bursary`= :bursary");
//执行添加数据
$stmt->execute(['name'=>'andy1','sex'=>'female','class'=>'3A','bursary'=>1200]);
echo 'success add '.$stmt->rowCount().' items';点击 "运行实例" 按钮查看在线实例
作业5:编程: PDO更新数据
<?php
/**
pdo 更新操作
*/
$pdo = new PDO('mysql:host=localhost;dbname=stu','root','root');
$sql = "update `student` set `bursary`= :bursary +100 where `name`= :name ";
$stmt = $pdo->prepare($sql);
$stmt->execute(['bursary'=>1900,'name'=>'andy']);
echo 'success '.$stmt->rowCount().' item';
$stmt = null;
$pdo = null;点击 "运行实例" 按钮查看在线实例
作业6:编程: PDO 删除数据
<?php
/**
pdo 删除
*/
//连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=stu','root','root');
// 创建SQL
$sql = "delete from student where `id`> :id";
//预处理语句
$stmt = $pdo->prepare($sql);
$stmt->execute(['id'=>120]);
echo 'delete success '.$stmt->rowCount().' items';
$stmt = null;
// 关闭连接
$pdo = null;点击 "运行实例" 按钮查看在线实例
作业7:编程:PDO查询数据
<?php
/**
pdo 查询
*/
// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=stu','root','root');
//创建SQL语句
$sql = "select `name`,`sex`,`class` from `student` where `bursary`> :bursary";
// 预处理语句
$stmt = $pdo->prepare($sql);
//执行查询语句
$stmt->execute(['bursary'=>1000]);
/*//一次性取出方法 ,数据大的时候,爆内存,不建议使用
$item = $stmt->fetchAll();
foreach ($item as $value) {
echo 'name:',$value['name'],'--'.$value['sex'],'--',$value['class'],'<br>';
}*/
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { //PDO::FETCH_ASSOC 只取关联部分。
echo var_export($row), '<br>';
}
$stmt = null;
$pdo = null;点击 "运行实例" 按钮查看在线实例
作业8;问答: 获取结果集记录数量的正确方式是什么?
* select rowcount 只是对delete,update,insert 等对数据表有写入操作的语句,返回受影响的行数,而对查询select 返回的数据
* 有的时候并不准确,我们需要通过,select count(*) 统计以下记录数,然后通过fetchColumn()来获得字段列的值。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号