第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

pdo_helper數(shù)據(jù)庫PDO操作類(未精簡)第一部分

king老師,還有各位大大們,幫忙看下,我自己寫的這個pdo操作類,不足的地方請指出。謝謝了!

<?php
/****************
*????pdo_dbhelper.class.php
*????pdo數(shù)據(jù)庫操作幫助類
*
******************/
class?Pdo_dbhelper{
????private?$conn;//PDO對象
????private?$stmt;//PDOStatement對象

????public?function?__construct(){
????????$this->getConnection();
????}

????public?function?getConnection(){
????????$database="anime";
????????$host="127.0.0.1";
????????$dns="mysql:dbname=".$database.";host=".$host;
????????$user="root";
????????$pwd="mysql";
????????$charset="utf8";
????????try{
????????????$pdo=new?PDO($dns,$user,$pwd);
????????????$pdo->exec("set?names?".$charset);
????????????$this->conn=$pdo;
????????}catch(PDOException?$e){
????????????echo?$e->getMessage();
????????}
????}

????public?function?preparedStatement($str_sql,$params){
????????try{
????????????$this->stmt=$this->conn->prepare($str_sql);
????????????$this->conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//設(shè)置報錯模式
????????????if(!empty($params)){
????????????????foreach($params?as?$key=>$value){
????????????????????$this->stmt->bindParam($key+1,$value);
????????????????}
????????????}
????????????$result=$this->stmt->execute();
????????????return?$result;
????????}catch(PDOException?$e){
????????????$e->getMessage();
????????}
????}
????
????/*
????*????@function?添加數(shù)據(jù)
????*????@param?string?$table?表名,?array?$params?列名和值組成的數(shù)組
????*????@return?boolean?返回true表示添加數(shù)據(jù)成功,返回false表示添加失敗
????*/
????public?function?create($table,$params){
????????$str_sql="INSERT?INTO?`".$table."`?(";
????????$columnsArr=array();
????????$placeholder=array();
????????$valuesArr=array();
????????foreach($params?as?$key=>$value){
????????????$columnsArr[]="`".$key."`";
????????????$placeholder[]="?";
????????????if(is_numeric($value)){
????????????????$valuesArr[]=$value;
????????????}
????????????else{
????????????????$valuesArr[]="\'".$value."\'";
????????????}
????????}
????????$str_columns=implode(",",$columnsArr);
????????$str_values=implode(",",$placeholder);
????????$str_sql.=$str_columns.")?VALUES(".$str_values.")";
????????return?$this->preparedStatement($str_sql,$valuesArr);
????}
????
????/*
????*????@function?修改數(shù)據(jù)
????*????@param?string?$table?表名,?array?$params?列名和值組成的數(shù)組,?array?$condition?部位=>array("id","=","5")組成的條件數(shù)組
????*????@return?boolean?返回true表示修改數(shù)據(jù)成功,返回false表示修改失敗
????*/
????public?function?update($table,$params,$condition){
????????$str_sql="UPDATE?".$table."?SET?";
????????$columnsArr=array();
????????$valuesArr=array();
????????foreach($params?as?$key=>$value){
????????????$columnsArr[]="`".$key."`=?";
????????????if(is_numeric($value)){????
????????????????$valuesArr[]=$value;
????????????}
????????????else{
????????????????$valuesArr[]="\'".$value."\'";
????????????}
????????}
????????$str_columns=implode(",",$columnsArr);
????????$condition_arr=$this->analyzeCondition($condition);//分析條件,返回數(shù)組
????????$str_sql.=$str_columns.$condition_arr["str_condition"];
????????if(!empty($condition_arr["value_arr_condition"])){
????????????$valuesArr=array_merge($valuesArr,$condition_arr["value_arr_condition"]);
????????}
????????return?$this->preparedStatement($str_sql,$valuesArr);
????}

????/*
????*????@function?刪除數(shù)據(jù)(一般不做物理刪除)
????*????@param?string?$table?表名,?array?$condition?部位=>array("id","=","5")組成的條件數(shù)組
????*????@return?boolean?返回true表示刪除數(shù)據(jù)成功,返回false表示刪除失敗
????*/
????public?function?delete($table,$condition){
????????$str_sql="DELETE?FROM?`".$table."`?";
????????$valuesArr=array();
????????$condition_arr=$this->analyzeCondition($condition);
????????$str_sql.=$condition_arr["str_condition"];
????????//肯定有where條件不然就刪表了,所以編碼的時候就避免
????????if(empty($condition_arr["value_arr_condition"])){
????????????return?false;
????????}
????????else{
????????????$valuesArr=$condition_arr["value_arr_condition"];
????????}
????????return?$this->preparedStatement($str_sql,$valuesArr);
????}
????
????/*
????*????@function?讀取數(shù)據(jù)
????*????@param?string?$table?表名,?array?$params?由列名組成的一維數(shù)組?array?$condition?部位=>array(array("id","=","5"),)組成的條件數(shù)組
????*????@return?array?
????*/
????public?function?readAll($table,$params,$condition){
????????$str_sql="SELECT?";
????????$columnsArr=array();
????????$valuesArr=array();
????????foreach($params?as?$key=>$value){
????????????$columnsArr[]="`".$value."`";
????????}
????????$str_columns=implode(",",$columnsArr);
????????$condition_arr=$this->analyzeCondition($condition);
????????$str_sql.=$str_columns."?FROM?`".$table."`".$condition_arr["str_condition"];
????????echo?$str_sql;
????????if(!empty($condition_arr["value_arr_condition"])){
????????????$valuesArr=$condition_arr["value_arr_condition"];//有條件的情況下,
????????}
????????$this->preparedStatement($str_sql,$valuesArr);
????????return?$this->stmt->fetchAll(PDO::FETCH_COLUMN,0);
????}

????/*
????*????@function?返回受影響的行數(shù)
????*????@return?string?
????*/
????public?function?getfetchRowNum(){
????????if($this->stmt==null){
????????????return?false;
????????}
????????else{
????????????return?$this->stmt->rowCount();
????????}
????}
????
????/*
????*????@function?返回最后插入行的ID
????*????@return?string?
????*/
????public?function?getLastInsertId(){
????????if($this->conn==null){
????????????return?false;
????????}
????????else{
????????????return?$this->conn->lastInsertId();
????????}
????}

????/*
????*????@function?分析condition數(shù)組
????*????@param?$condition?條件數(shù)組
????*????@return?array?["str_condition"]條件的字符串部分,["value_arr_condition"]條件的值組成的數(shù)組
????*/
????public?function?analyzeCondition($condition){
????????$arr=array();
????????$arr["str_condition"]="";
????????$arr["value_arr_condition"]=array();
????????if(isset($condition["where"])){
????????????$where_arr=$this->analyzeWhere($condition["where"]);
????????????$arr["str_condition"].=$where_arr["str"];
????????????$arr["value_arr_condition"]=array_merge($arr["value_arr_condition"],$where_arr["value_arr"]);
????????}
????????if(isset($condition["group"])){
????????????$group_arr=$this->analyzeGroup($condition["group"]);
????????????$arr["str_condition"].=$group_arr["str"];
????????????$arr["value_arr_condition"]=array_merge($arr["value_arr_condition"],$group_arr["value_arr"]);
????????}
????????if(isset($condition["having"])){
????????????$having_arr=$this->analyzeHaving($condition["having"]);
????????????$arr["str_condition"].=$having_arr["str"];
????????????$arr["value_arr_condition"]=array_merge($arr["value_arr_condition"],$having_arr["value_arr"]);
????????}
????????if(isset($condition["order"])){
????????????$order_arr=$this->analyzeOrder($condition["order"]);
????????????$arr["str_condition"].=$order_arr["str"];
????????????$arr["value_arr_condition"]=array_merge($arr["value_arr_condition"],$order_arr["value_arr"]);
????????}
????????if(isset($condition["limit"])){
????????????$limit_arr=$this->analyzeLimit($condition["limit"]);
????????????$arr["str_condition"].=$limit_arr["str"];
????????????$arr["value_arr_condition"]=array_merge($arr["value_arr_condition"],$limit_arr["value_arr"]);
????????}
????????return?$arr;
????}
????
//接后續(xù)第二部分,太長了。


正在回答

舉報

0/150
提交
取消

pdo_helper數(shù)據(jù)庫PDO操作類(未精簡)第一部分

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號