<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                注意事項: $configs=include_once($databasepath.'database.php'); 這里需要改哦 使用說明 ```php include_once('./Db.php'); echo "<br><pre>"; var_dump(Db::name('un_link')->field("id")->where("id=1")->fetchSql(true)->find() ); ``` **所有可用操作** 1. getAll($str)查詢所有符合條件的 字符串形式(可選) 2. table($str)定義查詢表名 有前綴的表名字符串形式(必填) 3. name($str)定義查詢表名 沒有前綴的表名 字符串形式(必填) 4. alias($str)定義查詢表別名沒有前綴的表名 字符串形式(必填) 5. field($str);查詢字段,可以是數組也可以是字符串 6. select($str)查詢所有符合條件的 字符串形式(可選) 7. count($str)統計數量,參數是要統計的字段名(可選) 8. max($str)獲取最大值,參數是要統計的字段名(必須) 9. min($str) 獲取最小值,參數是要統計的字段名(必須) 10. avg($str) 獲取最小值,參數是要統計的字段名(必須) 11. sum 獲取總分,參數是要統計的字段名(必須) 12. find($str)查詢一條 字符串形式(可選) 13. order($str)排序 字符串形式 14. JOIN($str)關聯 字符串形式 15. LEFTJOIN($str)左關聯 字符串形式 16. RIGHTJOIN($str)右關聯 字符串形式 17. where($v)查詢條件,可以是數組也可以是字符串 18. group($str)分組條件 19. page(0,10)分頁計算,限制數量 20. limit(0,10)限制結果數量 21. execute($sql)直接執行sql語句 22. getlatsql()查詢最后一條sql 23. insert($array)添加 24. update($array)修改 25. delete($array)刪除 26. fetchSql(true)用于直接返回SQL而不是執行查詢,適用于任何的CURD操作方法。 例如:true 27. failException 取消拋出異常,如果不傳入任何參數,默認為關閉,用于select和find方法,例如:false 28. resultset_type=數據庫的查詢結果也就是數據集,默認的配置下,數據集的類型是一個二維數組,可以配置數據庫的 resultset_type 返回結果集: **和tp5對比沒有的操作** 1、UNION 操作用于合并兩個或多個 SELECT 語句的結果集。 2、force 方法用于數據集的強制索引操作,例如: 3、時間查詢 4、高級查詢 5、子查詢 6、事務操作 7、查詢事件 8、注冊事件 9、如果開啟數據庫的調試模式的話,你可以對數據庫執行的任何SQL操作進行監聽,使用如下方法5.0支持存儲過程,如果我們定義了一個數據庫存儲過程sp_query,可以使用下面的方式調用: 10、ThinkPHP內置了分布式數據庫的支持,包括主從式數據庫的讀寫分離,但是分布式數據庫必須是相同的數據庫類型。配置database.deploy 為1 可以采用分布式數據庫支持。如果采用分布式數據庫,定義數據庫配置信息的方式如下 11、DISTINCT 方法用于返回唯一不同的值 。 12、Lock方法是用于數據庫的鎖機制,如果在查詢或者執行操作的時候使用: 13、cache可以用于select、find、value和column方法,以及其衍生方法,使用cache方法后,在緩存有效期之內不會再次進行數據庫查詢操作,而是直接獲取緩存中的數據,關于數據緩存的類型和設置可以參考緩存部分。 14、COMMENT方法 用于在生成的SQL語句中添加注釋內容 ```php <?php /** * 單例模式 **/ class Db { //保存全局實例 private static $instance; //數據庫連接句柄 private $_db; public $_configs = [ // 數據庫連接地址 'hostname' => "127.0.0.1", // 數據庫名稱 'dbname' => "", // 數據庫賬戶 'username' => "", // 數據庫密碼 'password' => "E7YhH8DZJGpfdb8A", // 數據庫表前綴 'prefix' => "", 'resultset_type' => false, ];//數據庫配置 public $_getlatsql = [];//最后一次sql /*需要每次使用表名都重置的*/ private $_table = null;//表名 private $_join = null;//where條件 private $_where = null;//where條件 private $_order = null;//order排序 private $_limit = null;//limit限定查詢 private $_group = null;//group分組 private $_alias = null;//alias定義別名 private $_field = "*";//field定義字段 private $_fetchSql=false; private $_failException=false; //數據庫連接參數 //私有化構造函數,防止外界實例化對象 private function __construct() { $link = $this->_db; //$configs=include_once($databasepath.'database.php'); // var_dump($configs); // echo "<br>"; $this->_configs=empty($configs)?$this->_configs:$configs; // var_dump($this->_configs);die; if(!$link){ $db = mysqli_connect($this->_configs['hostname'],$this->_configs['username'],$this->_configs['password'],$this->_configs['dbname']); mysqli_query($db,"set names utf8"); if(!$db){ $this->ShowException("錯誤信息".mysqli_connect_error()); } $this->_db = $db; } } //私有化克隆函數,防止外界克隆對象 private function __clone() { } /** * 獲取所有數據 * * @param <type> $table The table * * @return boolean All. */ public function getAll($table=null){ $link = $this->_db; if(!$link)return false; $sql = "SELECT * FROM {$table}"; $array=$this->execute($sql); if(is_string($array)||$this->_failException||$this->_configs['resultset_type']){ return $array; } $data = mysqli_fetch_all($array,MYSQLI_ASSOC); return $data; } /* */ public function reset(){ $this->_failException=false; $this->_fetchSql=false; $this->_join = null;//where條件 $this->_where = null;//where條件 $this->_order = null;//order排序 $this->_limit = null;//limit限定查詢 $this->_group = null;//group分組 $this->_alias = null;//alias定義別名 $this->_field = "*";//field定義字段 } /*啟動事務*/ public static function startTrans($table){ return mysqli_query($this->_db, "SET AUTOCOMMIT=0"); // 設置為不自動提交,因為MYSQL默認立即執行 } /*回滾事務*/ public static function rollback($table){ return mysqli_query($this->_db, "ROLLBACK"); // 判斷當執行失敗時回滾 } /*提交事務*/ public static function commit($table){ return mysqli_commit($this->_db); //執行事務 } public static function table($table){ if(!(self::$instance instanceof self)) { self::$instance = new self(); } self::$instance->_table("$table"); return self::$instance; } public function _table($table){ $this->reset(); $this->_table = $table; return $this; } public static function name($table){ if(!(self::$instance instanceof self)) { self::$instance = new self(); } self::$instance->_name("$table"); return self::$instance; } public function _name($table){ $this->reset(); $this->_table = $this->_configs['prefix'].$table; return $this; } public function alias($as){ $this->_alias = ' as '. $as; return $this; } /** * where條件 * * @param string $where The where * * @return <type> ( description_of_the_return_value ) */ public function field($field='*'){ $fieldStr = ''; $link = $this->_db; if(!$link)return $link; if(is_array($field)){ foreach ($field as $key => $value) { $fieldStr .= "'".$value."'"; } $fieldStr = $fieldStr; }elseif(is_string($field)&&!empty($field)){ $fieldStr = $field; } $this->_field = $fieldStr; return $this; } /** * 實現查詢操作 * * @param string $fields The fields * * @return boolean ( description_of_the_return_value ) */ public function select($fields=""){ $fieldsStr = ''; $link = $this->_db; if(!$link)return false; if(is_array($fields)){ $fieldsStr = implode(',', $fields); }elseif(is_string($fields)&&!empty($fields)){ $fieldsStr = $fields; } if(empty($fields)){ $fields= $this->_field; } $sql = "SELECT {$fields} FROM {$this->_table} {$this->_alias} {$this->_join} {$this->_where} {$this->_order} {$this->_limit}"; // echo($sql."<br/>"); $array=$this->execute($sql); if(is_string($array)||$this->_failException||$this->_configs['resultset_type']){ return $array; } $data = mysqli_fetch_all($array,MYSQLI_ASSOC); return $data; } /**.$this->_alias * 實現查詢操作 * * @param string $fields The fields * * @return boolean ( description_of_the_return_value ) */ public function count($fields="*"){ // return $this->aggregation($fields,"count"); $fieldsStr = ''; $link = $this->_db; if(!$link)return false; if(is_array($fields)){ $fieldsStr = implode(',', $fields); }elseif(is_string($fields)&&!empty($fields)){ $fieldsStr = $fields; } $sql = "SELECT count({$fields}) FROM {$this->_table} {$this->_alias} {$this->_join} {$this->_where} {$this->_order} {$this->_limit}"; // echo($this->_where."<br/>"); // echo($sql."<br/>"); $array=$this->execute($sql); if(is_string($array)||$this->_failException||$this->_configs['resultset_type']){ return $array; } $data = mysqli_fetch_all($array,MYSQLI_ASSOC); // var_dump($data);die; return $data[0]["count({$fields})"]; } public function aggregation($fields,$type){ $fieldsArr = []; $fieldsArr2=[]; $link = $this->_db; if(!$link)return false; if(is_array($fields)){ $fieldsArr = $fields ; }elseif(is_string($fields)&&!empty($fields)){ $fieldsArr = explode(',', $fields); } foreach($fieldsArr as $key=>$val){ $fieldsArr2[]=$type."({$val})"; } $fieldsStr=implode(',', $fieldsArr2); $sql = "SELECT $fieldsStr FROM {$this->_table} {$this->_alias} {$this->_join} {$this->_where} {$this->_order} {$this->_limit}"; $array=$this->execute($sql); if(is_string($array)||$this->_failException||$this->_configs['resultset_type']){ return $array; } $data = mysqli_fetch_all($array,MYSQLI_ASSOC); return $data[0]; } public function max($fields){ return $this->aggregation($fields,"max"); } public function min($fields){ return $this->aggregation($fields,"min"); } public function sum($fields){ return $this->aggregation($fields,"sum"); } public function avg($fields){ return $this->aggregation($fields,"avg"); } // /** * 實現查詢操作 * * @param string $fields The fields * * @return boolean ( description_of_the_return_value ) */ public function find($fields=""){ $fieldsStr = ''; $link = $this->_db; if(!$link)return false; if(is_array($fields)){ $fieldsStr = implode(',', $fields); }elseif(is_string($fields)&&!empty($fields)){ $fieldsStr = $fields; } if(empty($fields)){ $fields= $this->_field; } $sql = "SELECT {$fields} FROM {$this->_table} {$this->_alias} {$this->_join} {$this->_where} {$this->_order} {$this->_limit}"; // echo($sql."<br/>"); $array=$this->execute($sql); if(is_string($array)||$this->_failException||$this->_configs['resultset_type']){ return $array; } $data = mysqli_fetch_all($array,MYSQLI_ASSOC); return $data[0]; } /** * order排序 * * @param string $order The order * * @return boolean ( description_of_the_return_value ) */ public function order($order=''){ $orderStr = ''; $link = $this->_db; if(!$link)return false; if(is_string($order)&&!empty($order)){ $orderStr = "ORDER BY ".$order; } $this->_order = $orderStr; return $this; } /** * JOIN * * @param string $where The where * * @return <type> ( description_of_the_return_value ) */ public function JOIN($JOIN=''){ $JOINStr = ''; $link = $this->_db; if(!$link)return $link; if(is_string($JOIN)&&!empty($JOIN)){ $JOINStr = " join ".$JOIN; } $this->_join = $JOINStr; return $this; } /** * LEFTJOIN * * @param string $where The where * * @return <type> ( description_of_the_return_value ) */ public function LEFTJOIN($JOIN=''){ $JOINStr = ''; $link = $this->_db; if(!$link)return $link; if(is_string($JOIN)&&!empty($JOIN)){ $JOINStr = " LEFT JOIN ".$JOIN; } $this->_join = $JOINStr; return $this; } /** * LEFTJOIN * * @param string $where The where * * @return <type> ( description_of_the_return_value ) */ public function RIGHTJOIN($JOIN=''){ $JOINStr = ''; $link = $this->_db; if(!$link)return $link; if(is_string($JOIN)&&!empty($JOIN)){ $JOINStr = " RIGHT JOIN ".$JOIN; } $this->_join = $JOINStr; return $this; } /** * where條件 * * @param string $where The where * * @return <type> ( description_of_the_return_value ) */ public function where($where=''){ $whereStr = ''; $link = $this->_db; if(!$link)return $link; if(is_array($where)){ foreach ($where as $key => $value) { if(is_array($value)){ if($value == end($where)){ $whereStr .= "`".$key."` ".$value[0]." '".$value[1]."'"; }else{ $whereStr .= "`".$key."` ".$value[0]." '".$value[1].""."' AND "; } }else if($value == end($where)){ $whereStr .= "`".$key."` = '".$value."'"; }else{ $whereStr .= "`".$key."` = '".$value."' AND "; } } $whereStr = "WHERE ".$whereStr; }elseif(is_string($where)&&!empty($where)){ $whereStr = "WHERE ".$where; } $this->_where = $whereStr; return $this; } /** * group分組 * * @param string $group The group * * @return boolean ( description_of_the_return_value ) */ public function group($group=''){ $groupStr = ''; $link = $this->_db; if(!$link)return false; if(is_array($group)){ $groupStr = "GROUP BY ".implode(',',$group); }elseif(is_string($group)&&!empty($group)){ $groupStr = "GROUP BY ".$group; } $this->_group = $groupStr; return $this; } /** *page 分頁計算,限定查詢 * * @param string $limit The limit * * @return <type> ( description_of_the_return_value ) */ public function page($page='',$limit=''){ $limitStr = ''; $link = $this->_db; if(!$link)return $link; if(is_array($page)){ list($page,$limit) = $page; }else if((is_string($page)||!empty($page))&&empty($limit)){ list($page,$limit) = explode(",",$page); } if($page<1){ $page=1; } if(empty($limit)&&!empty($page)){ $limitStr = "LIMIT ".$page; }else{ $limitStr = "LIMIT ".($page-1)*$limit.",".$limit; } /*Start limit*/ $this->_limit = $limitStr; return $this; } /** * limit限定查詢 * * @param string $limit The limit * * @return <type> ( description_of_the_return_value ) */ public function limit($slimit='',$limit=''){ $limitStr = ''; $link = $this->_db; if(!$link)return $link; if(is_array($slimit)){ list($slimit,$limit) = $slimit; }else if((is_string($slimit)||!empty($slimit))&&empty($limit)){ list($slimit,$limit) = explode(",",$slimit); } if($slimit>0){ $slimit = $slimit-1; }else{ $slimit=0; } if(empty($limit)&&!empty($slimit)){ $limitStr = "LIMIT ".$slimit; }else{ $limitStr = "LIMIT ".$slimit.",".$limit; } //var_dump($limitStr);die; /*Start limit*/ $this->_limit = $limitStr; return $this; } public function fetchSql($str){ $this->_fetchSql=$str; return $this; } public function failException($str){ $this->_failException=$str; return $this; } /** * 執行sql語句 * * @param <type> $sql The sql * * @return boolean ( description_of_the_return_value ) */ public function execute($sql=null){ $link = $this->_db; if(!$link)return false; $this->_getlatsql=[$this->_table=>$sql]; if($this->_fetchSql){ return $sql; } $res = mysqli_query($this->_db,$sql); // var_dump($sql);die; // var_dump($res["current_field"]); if(!$res){ if($this->_failException){ return null; }else{ $errors = mysqli_error_list($this->_db); $this->ShowException("報錯啦!<br/>錯誤號:".$errors[0]['errno']."<br/>SQL錯誤狀態:".$errors[0]['sqlstate']."<br/>錯誤信息:".$errors[0]['error']); die(); } } return $res; } /** * 執行sql語句 * * @param <type> $sql The sql * * @return boolean ( description_of_the_return_value ) */ public function getlatsql(){ return $this->_getlatsql[$this->_table]; } /** * 插入數據 * * @param <type> $data The data * * @return boolean ( description_of_the_return_value ) */ public function insert($data){ $link = $this->_db; if(!$link)return false; if(is_array($data)){ $keys = ''; $values = ''; foreach ($data as $key => $value) { $keys .= "`".$key."`,"; $values .= "'".$value."',"; } $keys = rtrim($keys,','); $values = rtrim($values,','); } $sql = "INSERT INTO `{$this->_table}`({$keys}) VALUES({$values})"; // var_dump( $sql);die; mysqli_query($this->_db,$sql); $insertId = mysqli_insert_id($this->_db); return $insertId; } /** * 更新數據 * * @param <type> $data The data * * @return <type> ( description_of_the_return_value ) */ public function update($data){ $link = $this->_db; if(!$link)return $link; if(is_array($data)){ $dataStr = ''; foreach ($data as $key => $value) { $dataStr .= "`".$key."`='".$value."',"; } $dataStr = rtrim($dataStr,','); } $sql = "UPDATE `{$this->_table}` SET {$dataStr} {$this->_where} {$this->_order} {$this->_limit}"; $res = $this->execute($sql); return $res; } /** * 刪除數據 * * @return <type> ( description_of_the_return_value ) */ public function delete(){ $link = $this->_db; if(!$link)return $link; $sql = "DELETE FROM `{$this->_table}` {$this->_where}"; $res = $this->execute($sql); return $res; } /** * 異常信息輸出 * * @param <type> $var The variable */ private function ShowException($var){ if(is_bool($var)){ var_dump($var); }else if(is_null($var)){ var_dump(NULL); }else{ echo "<pre style='position:relative;z-index:1000;padding:10px;border-radius:5px;background:#F5F5F5;border:1px solid #aaa;font-size:14px;line-height:18px;opacity:0.9;'>".print_r($var,true)."</pre>"; } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看