PDO對mysql資料庫增刪改查操作類步驟詳解

來源:互聯網
上載者:User
這次給大家帶來PDO對mysql資料庫增刪改查操作類步驟詳解,PDO對mysql資料庫增刪改查操作的注意事項有哪些,下面就是實戰案例,一起來看一下。

前言

PDO一是PHP資料對象(PHP Data Object)的縮寫。

並不能使用PDO擴充本身執行任何資料庫操作,必須使用一個database-specific PDO driver(針對特定資料庫的PDO驅動)訪問資料庫伺服器。

PDO並不提供資料庫抽象,它並不會重寫SQL或提供資料庫本身缺失的功能,如果你需要這種功能,你需要使用一個更加成熟的抽象層。

最近在做項目時用到了PDO操作mysql資料庫,於是自己寫了一個類檔案,命名為mysql_class.php檔案代碼如下:

範例程式碼

<?phpclass mysql{ //常量聲明 const DSN = "mysql:host=[資料庫地址];dbname=[資料庫名];charset=utf8";//資料庫地址與資料庫名及編碼 const USERNAME = "[資料庫使用者名稱]";//使用者名稱 const PASSWD = "[資料庫密碼]";//密碼 //私人變數聲明 private $sql = NULL;//sql語句緩衝 private $link = NULL;//資料庫連接 private $result = NULL;//結果 /*******************************************************************************  * @ 名稱:建立串連  * @ 屬性:私人 *******************************************************************************/ private function connect(){  try {   $this->link = new \PDO(self::DSN, self::USERNAME, self::PASSWD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));//建立串連  }  catch (PDOException $e) {   die ("Error!:".$e->getMessage()."<hr/>");  } } /*******************************************************************************  * @ 名稱:執行sql語句  * @ 屬性:私人  * @ 入口參數:無  * @ 出口參數:執行成功返回真,否則返回假,查詢語句儲存結果集數組 *******************************************************************************/ private function sql(){  try {   $this->connect();   $this->link->beginTransaction();//開啟一個事務   $prepare = $this->link->prepare($this->sql);//準備查詢語句   $prepare->execute();//執行查詢語句並返回結果集   $cmd = strtolower(substr(trim($this->sql),0,6));//截取命令字元   if($cmd == "select"){    $array = $prepare->fetch(PDO::FETCH_ASSOC);//擷取結果集中的所有資料    if(count($array)){     $this->result = NULL;     $this->result = $array;//儲存結果集     return true;//查詢到結果返回真    }else{     return false;//否則返回假    }   }else if($cmd == "insert" || $cmd == "delete" || $cmd == "update"){    if($prepare){     return true;//執行成功返回真    }else{     return false;//否則返回假    }   }   $this->link->commit(); //如果正確執行完成那麼確認commit  } catch (PDOException $e) {   $this->link->rollBack();//如果執行中有錯誤的情況下復原   die ("Error!:".$e->getMessage()."<hr/>");  } } /*******************************************************************************  * @ 名稱:sql語句處理  * @ 屬性:公有  * @ 入口參數:cmd增刪改查字元命令;dsname資料表名;first第一個參數;second第二個參數;  * @ 出口參數:執行成功返回真,否則返回假,查詢操作返回結果集數組  * @ 使用樣本:  $mysql->handle("insert","abc","openid,nickname","'123','abc'");//增加  $mysql->handle("delete","abc","openid='123'");//刪除  $mysql->handle("update","abc","nickname='def'","openid='123'");//更新  $res = $mysql->handle("select","abc","*","openid='123'");//查詢  if(is_array($res) == true){   foreach($res as $key=>$val){    echo $key."=".$val."<hr>";   }  }//遍曆查詢結果數組 *******************************************************************************/ public function handle($cmd,$dsname,$first,$second=NULL){  switch($cmd){   case 'insert'://插入    $this->sql = "insert into $dsname ($first) values ($second)";    break;   case 'delete'://刪除    $this->sql = "delete from $dsname where $first";    break;   case 'update'://更新    $this->sql = "update $dsname set $first where $second";    break;   case 'select'://查詢    $this->sql = "select $first from $dsname where $second";    break;   default:    die ("Syntax Error!");//提示法錯誤    break;  }  $res = $this->sql();//執行sql語句  if($res){   if($cmd == 'select'){    return $this->result;//返回查詢結果   }else{    return true;//執行成功返回真   }  }else{   return false;//否則返回假  }  $this->link=NULL;;//關閉資料庫 }}$mysql = new mysql;//資料庫類的執行個體化?>

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

php命名空間使用詳解

Laravel 5.5核心架構使用詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.