批改状态:未批改
老师批语:
功能:
pdo来实现
1:增加,
2:删除,
3:查找,
4:更新 功能。
<?php
// 连接方法
// 自定义方法,是为了重复使用,减少代码量
header('content-type:text/html;charset=utf-8');
function con(){
$dsn = 'mysql:host=127.0.0.1;dbname=phpzhong;charset=utf8;port=3306';
$dsn = 'mysql:dbname=phpzhong';
$dbname = 'root';
$dbpw = '123456';
try{
$p = new PDO($dsn,$dbname,$dbpw);
} catch (PDOException $e) {
print_r($e->getMessage());
exit;
}
return $p;
}
// 查询数据
// $table 必须传值
// 作业 : 用PDO把增删改方法写好,可以传值
function select($table,$field='*',$where='',$order='',$limit=''){
// 1,连接
$c = con();
// 2,sql语句
$sql = 'SELECT '; // 组装select关键词
// 如果返回值传值,才进行组装
if(!empty($field)){
$sql .= rtrim($field); // 组装查询返回字段
}
$sql .= ' FROM '; // 组装表名关键词
$sql .= $table; // 组装表名
// empty 判断变量是否为空
// ! 取反
// !empty($where) 判断变量不为空,才会进入if
// 判断是否传条件,传了条件进行条件组装
if(!empty($where)){
$sql .= ' WHERE '; // 组装条件关键词
$sql .= $where; // 组装条件
}
// 判断排序
if(!empty($order)){
$sql .= ' ORDER BY ';
$sql .= $order;
}
// 判断数量
if(!empty($limit)){
$sql .= ' LIMIT ';
$sql .= $limit;
}
print_r($sql);
// 预处理sql语句
$a = $c->prepare($sql);
if($a->execute()){
// 当查询结果后,结果集是没有数据的。
// 用rowCount方法,判断结果集是否有结果,有结果我们才返回结果
if($a->rowCount()){
// 5,设置模式
$a->setFetchMode(PDO::FETCH_ASSOC);
// 6,结果集
$ret = $a->fetchAll();
// 返回结果集
return $ret;
}else{
return false;
}
}else{
return false;
}
}
$s = select('user','`id`,`username`,`age`','`age` > 40','age','1,2');
print_r($s);
//增加insert into
//INSERT INTO `user` VALUES ('1', '`ximen`', '``999', null, null, null, null, null, null, '0');
function add($table,$zhiduan,$values){
// 1,连接
$c = con();
// 2,sql语句
$sql = "INSERT INTO `$table` " ;
$zhiduan = '('.$zhiduan.')';
$sql .=$zhiduan;
if (is_array($values)) {
$vs='';
$str='';
foreach ($values as $v) {
$vs.='('.$v.'),';
$vs1=substr($vs,0,strlen($str)-1);
}
$sql.='VALUES'.'('.$values.')'.$vs1;
$v=str_replace('(Array)','',$sql);
$sql=$v;
// echo $sql;
}else{
$sql .= 'VALUES'.'('.$values.')';
// echo $sql;
}
$a = $c->prepare($sql);
if ($a -> execute()) {
return true;
}else{
return false;
}
// var_dump($a);
}
// $add = add('column','`id`,`name`',"'4','xiaowu'");
// $add = add('column','`id`,`name`',["'11','xiaow'","'12','jjj'","'13','lakdj'"]);
// print_r($add);
//删除delelte
//delete from <表名> [where <删除条件>]
function delete($table,$zhiduan,$where){
// 1,连接
$c = con();
// 2,sql语句
$sql = "DELETE FROM `$table` " ;
$sql .= ' WHERE '; // 组装条件关键词
if(!empty($where)){
$sql .="$zhiduan";
$sql .= $where; // 组装条件
}
var_dump($sql);
$a = $c->prepare($sql);
if ($a -> execute()) {
return true;
}else{
return false;
}
}
// $delete=delete('column','id','=2');
// print_r($delete);
//更新update
//update <表名> set <列名=更新值> [where <更新条件>]
//$zhiduan是字段
//
function update($table,$zhiduan,$value,$where=''){
//链接数据库
$c= con();
$sql=" UPDATE `$table` SET ";
$sql.=" `$zhiduan` ";
$sql.=" $value ";
$sql.=" WHERE ";
$sql.=" $where ";
var_dump($sql);
$a = $c->prepare($sql);
if ($a -> execute()) {
return true;
}else{
return false;
}
}
// $update=update('column','name','=3','`id`=3');
// print_r($update);总结
1:写连接数据库功能的方法;
2:再写增加,删除,查找,更新功能
3:链接方法可以重复使用;再写pdo封装sql的时候,要注意sql里面··符号,最好打印出来。
4:写法sql方法的时候,先链接数据库,在拼接sql语句。给他准备预处理语句,最后再去执行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号