批改狀態(tài):合格
老師批語:
<?php if(!function_exists('connect' )){ function conncet($dbname,$type='mysql',$host='127.0.0.1',$charset='utf8',$port=3306,$user='root',$pass='root'){ $dsn = "{$type}:host={$host};dbname={$dbname};charset={$charset};port={$port}"; $userName = $user;//數(shù)據(jù)庫用戶名 $password = $pass;//數(shù)據(jù)庫用戶密碼 $options = [//配置連接屬性 PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,//錯誤模式 PDO::ATTR_CASE=>PDO::CASE_NATURAL,//自然名稱 PDO::ATTR_EMULATE_PREPARES=>TRUE,//棄用模擬功能 PDO::ATTR_PERSISTENT=>TRUE, ]; try{//實(shí)例化PDO類,創(chuàng)建PDO對象 $pdo =new PDO($dsn,$userName,$password,$options); }catch(PDOException $e){ print '連接錯誤'.$e->getMessage(); die(); } return $pdo; } }//連接數(shù)據(jù)庫 if(!function_exists('insert' )){//檢查指定的函數(shù)是否已經(jīng)定義 function insert($pdo,$table,$data=[]){//建立insert函數(shù)并設(shè)置三個(gè)參數(shù) $sql="INSERT IGNORE {$table} SET "; foreach(array_keys($data) as $field){//循環(huán)添加$data數(shù)組中的數(shù)據(jù) $sql .=$field.'=:'.$field.','; } $sql =rtrim(trim($sql),',').';';//創(chuàng)建sql語句 $stmt = $pdo->prepare($sql);//創(chuàng)建stmt對象 foreach($data as $field=>$value){//綁定參數(shù)到預(yù)處理 $stmt->bindValue(":{$field}",$value); } //die($stmt->queryString);//檢查sql語句是否錯誤 if($stmt->execute()){//執(zhí)行新增操作 if($stmt->rowCount()>0){//判斷執(zhí)行是否成功并返回布爾值 return true; } }else{ return false; } } }//新增數(shù)據(jù) if(!function_exists('update' )){ function update($pdo,$table,$data=[],$where ='' ){ //創(chuàng)建sql語句 $sql="UPDATE {$table} SET "; foreach(array_keys($data) as $field){ $sql .=$field.'=:'.$field.','; } $sql =rtrim($sql,","); IF(!empty($where)){ $sql .=' WHERE '.$where.';'; }else{ exit('條件不能為空'); } $stmt = $pdo->prepare($sql);//創(chuàng)建stmt對象 foreach($data as $field=>$value){//綁定參數(shù)到預(yù)處理 $stmt->bindValue(":{$field}",$value); } if($stmt->execute()){//執(zhí)行新增操作 if($stmt->rowCount()>0){ return true; } }else{ return false; } } }//更新數(shù)據(jù) if(!function_exists('find' )){ function find($pdo,$table,$fields,$where ='' ){ //創(chuàng)建sql語句 $sql="SELECT"; if(is_array($fields)){ foreach($fields as $field){ $sql .=$field.','; } }else{ $sql .=$fields.','; } $sql =rtrim(trim($sql),','); $sql .=' FROM '.$table; if(!empty($where)){ $sql .=' WHERE '.$where; } $sql .=' LIMIT 1 ;'; $stmt = $pdo->prepare($sql); if($stmt->execute()){ if($stmt->rowCount()>0){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetch(); } }else{ return false; } } }//查詢單條數(shù)據(jù) if(!function_exists('select' )){ function select($pdo,$table,$fields,$where ='' ){ //創(chuàng)建sql語句 $sql="SELECT"; if(is_array($fields)){ foreach($fields as $field){ $sql .=$field.','; } }else{ $sql .=$fields.','; } $sql =rtrim(trim($sql),','); $sql .=' FROM '.$table; if(!empty($where)){ $sql .=' WHERE '.$where; } if(!empty($order)){ $sql .=' ORDER BY '.$order; } //die($sql);//輸出sql語句查看錯誤 $stmt = $pdo->prepare($sql); //die($stmt->queryString); if($stmt->execute()){ if($stmt->rowCount()>0){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetchAll(); } }else{ return false; } } }//查詢多條數(shù)據(jù) if(!function_exists('delete')){ function delete($pdo,$table, $where ='' ){ //創(chuàng)建sql語句 $sql="DELETE FROM {$table}"; IF(!empty($where)){ $sql .=' WHERE '.$where.';'; }else{ exit('條件不能為空'); } $stmt = $pdo->prepare($sql);//創(chuàng)建stmt對象 //die($stmt->queryString); if($stmt->execute()){//執(zhí)行刪除操作 if($stmt->rowCount()>0){ return true; } }else{ return false; } } }//刪除數(shù)據(jù) ?>
以上為封裝操作,組裝sql語句需要不斷使用die($stmt->queryString);//檢查sql語句錯誤
<?php require 'func_pdo.php'; $dbname='php'; $type='mysql'; $host='127.0.0.1'; $charset='utf8'; $port=3306; $user='root'; $pass='root'; $pdo=conncet($dbname,$type,$host,$charset,$port,$user,$pass); ////新增測試 //$table = 'staff'; //$data = ['name'=>'PF','sex'=>0,'age'=>30,'salary'=>888]; //insert($pdo,$table,$data); // ////更新測試 //$table = 'staff'; //$data = ['name'=>'PFGT','sex'=>0,'age'=>30,'salary'=>999]; //$where = 'staff_id=21'; //update($pdo,$table,$data,$where); ////單條查詢測試 //$table = 'staff'; //$fields = ['name','sex','age','salary']; //$fields = '*'; //$fields = ' name, salary'; //$where ='age<40'; //echo '<pre>'.print_r(find($pdo,$table,$fields,$where),true).'</pre>'; ////多條查詢測試 //$table = 'staff'; //$fields = ['name','age','salary']; //$fields = '*'; //$fields = ' name, salary'; //$where ='age<20'; //$order ='age ASC'; //echo '<pre>'.print_r(select($pdo,$table,$fields,$where,$order),true).'</pre>'; //刪除測試 $table = 'staff'; $where = 'staff_id=21'; delete($pdo,$table,$where); ?>
此為測試提交頁面
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號