作业一
添加操作: insert into 表名
SET name
=:n alias
=:a’
<?php
//添加操作
require __DIR__.'/pdo.php';
$sql = 'INSERT INTO `works` SET `name`=:n, `alias`=:a';
$stmt = $pdo->prepare($sql);
$name = 'sdfasdf';
$alias = '30';
$stmt->bindParam('n',$name,PDO::PARAM_STR);
$stmt->bindParam('a',$alias,PDO::PARAM_STR);
$add = $stmt->execute();
if($add){
$count = $stmt->rowCount();
if($count > 0){
echo '插入成功';
}else{
echo '插入失败';
}
} else{
die($stmt-> errorInfo());
}
$pdo = null;
删除操作 ‘DELETE * FROM 表名
WHERE id
=:i’
<?php
//删除操作
require __DIR__.'/pdo.php';
$sql = 'DELETE FROM `works` WHERE `id`=:i';
$stmt = $pdo -> prepare($sql);
$id = 12;
$stmt->bindParam('i',$id,PDO::PARAM_INT);
if($stmt -> execute()){
if ($stmt -> rowCount()> 0) {
echo '删除数据成功'.$stmt -> rowCount();
}
} else {
die(print_r($stmt->errorInfo(),true));
}
更新操作 UPDATE 表名
SET name
=:n alias
=:a’
<?php
//更新操作
require __DIR__.'/pdo.php';
$sql = 'UPDATE `works` SET `name`=:n,`alias`=:a WHERE`id`=:d';
$stmt = $pdo -> prepare($sql);
$id = 2;
$name = '张三';
$alias = '山东理工大学';
$stmt->bindParam('d',$id,PDO::PARAM_STR);
$stmt->bindParam('n',$name,PDO::PARAM_STR);
$stmt->bindParam('a',$alias,PDO::PARAM_STR);
$upa = $stmt -> execute();
if($upa){
$count = $stmt -> rowCount();
if ($count > 0) {
echo '修改数据成功';
} else {
echo '修改数据失败';
}
} else {
die(print_r($stmt->errorInfo(),true));
}
查询操作 SELECT * FROM 表名
; foreach
<?php
//查询操作
require __DIR__.'/pdo.php';
$sql = 'SELECT * FROM `works`';
$stmt = $pdo -> prepare($sql);
$select = $stmt->execute();
if($select){
$arr = $stmt->fetchAll();
foreach($arr as $v){
echo $v['id'].'-----'.$v['name'].'-----'.$v['alias'].'<hr>';
}
} else{
die(print_r($stmt->errorInfo(),true));
}
作业二
while查询
fetchAll()查询
<?php
# 查询2: fetchAll()
// 1. 连接数据库
require __DIR__ . '/pdo.php';
// 2. 创建SQL语句模板
$sql = 'SELECT * FROM `works` WHERE `id` = :d';
// 3. 创建SQL语句对象
$stmt = $pdo->prepare($sql);
// 4. 将变量绑定到SQL语句模板的命名占位符上
$id = 2;
$stmt->bindParam('d', $id, PDO::PARAM_INT);
// 5. 执行SQL操作
$stmt->execute();
// 遍历, 返回二维数组
$works = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($works as $work) {
echo '<pre>' . print_r($work, true);
}
// 6. 销毁pdo, 关闭连接
$pdo = null; // unset($pdo) 等价`
bindColumn()查询
<?php
# 查询3: bindColumn()
// 1. 连接数据库
require __DIR__ . '/pdo.php';
// 2. 创建SQL语句模板
$sql = 'SELECT * FROM `works` WHERE `id` = :i';
// 3. 创建SQL语句对象
$stmt = $pdo->prepare($sql);
// 4. 将变量绑定到SQL语句模板的命名占位符上
$id = 2;
$stmt->bindParam('i', $id, PDO::PARAM_INT);
// 5. 执行SQL操作
$stmt->execute();
// 将结果集中的记录中的字段, 绑定到指定的变量上
$stmt->bindColumn('name', $name);
$stmt->bindColumn('alias', $alias);
while ($stmt->fetch(PDO::FETCH_ASSOC)) {
$alias = mb_substr($alias,0, 20,'utf-8');
echo '片名: ' . $name . '<br>' . '简介: ' . $alias . '...<hr>';
}
// 6. 销毁pdo, 关闭连接
$pdo = null; // unset($pdo) 等价`
总结
1、增删改查 、 预处理 以及多种数据查询
2、预处理要注意 $sql语句和bindParam的写入方式
3、try 、catch 能够精准的判断出SQL错误方式!