yaf没有自己的数据库扩展,正好闲着没事就花了一上午写了一个pdo的数据库扩展,支持php连贯操作,支持数组插入,更新等,因为时间有限,写的并不是很完善,还有很多要去补充,比如执行错误提示等等,先粘贴出来,希望大家可以提出意见和建议。
<?php /** * Created by PhpStorm. * User: Administrator:HenryZhang * Date: 2016/3/31 * Time: 8:23 */ interface delete1{ function delete(); function deletebyId($id); } interface update1{ function update_array(array $arr); // function function update($data,$where); } interface insert1{ function insert(array $arr); } interface select2{ function get_all();//获取数据库全部信息 function get_one($where);//获取一条信息 function get_field();//获取一个字段的信息 function select();//选择 function findbyId($id);//根据id条件查询 } class db123{ function __construct() { $connect= new PDO("mysql:host=localhost;dbname=yaf","root",""); return $connect; } function exec_sql($sql){ $conn= $this->__construct(); return $arr=$conn->query($sql); } function query_sql($sql){ $conn= $this->__construct(); return $arr=$conn->query($sql); $result=array(); foreach($arr as $v){ $result[]=$v; } // return $conn->getError(); return $result; } } class pdotest1 extends db123 implements select2,insert1,update1,delete1{ private $password=''; private $tablename=""; private $where=""; private $limit=""; private $field=""; private $order=""; private $connect; function __construct() { return parent::__construct(); } function where($where) { $this->where="where ".$where; // TODO: Implement where() method. return $this; } function tablename($tabname) { $this->tablename=" ".$tabname; // TODO: Implement db() method. return $this; } function limit($limit,$end=" ") { // TODO: Implement limit() method. if($end==" "){ $this->limit=" limit 0,".$limit; } else{ $this->limit=" limit $limit,$end"; } return $this; } function field($filed) { $this->field=$filed; return $this; // TODO: Implement field() method. } function order($field, $oder) { $this->order="order by $field $oder"; // TODO: Implement order() method. return $this; } function select() { // $this->db1("user"); // TODO: Implement sele() method. $conn= $this->__construct(); $tabelname=($this->tablename); $where=$this->where; $limit=$this->limit; $field=$this->field; $order=$this->order; if($field==""){ $sql="select * from $tabelname $where $order $limit"; } else{ $sql="select $field $tabelname $where $order $limit"; } return parent::query_sql($sql); } function get_all() { // // TODO: Implement get_all() method. $tbname=$this->tablename; $sql="select * from $tbname"; echo $sql; $conn= $this->__construct(); $arr=$conn->query($sql); $result=array(); foreach($arr as $v){ $result[]=$v; var_dump( $v); } return $result ; } function get_field() { // TODO: Implement get_field() method. $field=$this->field; $taname=$this->tablename; $sql="select $field from $taname"; echo $sql; return parent::query_sql($sql); } function get_one($where) { // TODO: Implement get_one() method. $tbname=$this->tablename; $sql="select * from $tbname where $where"; echo $sql; return parent::query_sql($sql); } function findbyId($id) { // TODO: Implement findbyId() method. $tabelname=$this->tablename; $sql="select * from $tabelname where id=$id"; return parent::query_sql($sql); } function insert(array $arr) { $len=count($arr); $value1=array(); foreach($arr as $k=>$v){ $value1[]=$k; $value2[]=$v; } $filed=""; $filed1=""; for ($i=$len-1;$i>=0;$i--){ $filed=$value1[$i].','.$filed; } for ($i=$len-1;$i>=0;$i--){ $filed1="'".$value2[$i]."'".','.$filed1; } // echo $filed1; $value3=substr($filed,0,(strlen($filed)-1)); $value4= substr($filed1,0,(strlen($filed1)-1)); // echo $value4; var_dump($value1); var_dump($value2); $tabname=$this->tablename; $sql="insert into $tabname ($value3) values($value4)"; if(!parent::exec_sql($sql)){ echo "insert error"; } else{ echo "ok"; } } function update_array(array $arr){ $len=count($arr); } function update($data,$where){ $tbname=$this->tablename; $sql="update $tbname set $data where $where"; if(!parent::exec_sql($sql)){ echo "updaa error"; } else{ echo "ok"; }; } function deletebyId($id){ $tbname=$this->tablename; $sql="delete from $tbname where id=$id"; if(!parent::exec_sql($sql)){ echo " deletebyId error"; }else{ echo "deletebyId ok"; } } function delete() { $tbname=$this->tablename; echo $tbname; $where=$this->where; $sql="delete from $tbname $where"; echo $sql; if(!parent::exec_sql($sql)){ echo "delect error"; }else{ echo "delete ok"; } } }