功能:
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语句。给他准备预处理语句,最后再去执行。