日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)

發布時間:2025/3/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了方便操作Mysql數據庫, 封裝類似thinkphp連貫操作數據庫的Db類<?php

header("Content-Type:text/html;charset=utf-8");

/**

*php操作mysql的工具類

*/

class?Db{

private?$_db?=?null;//數據庫連接句柄

private?$_table?=?null;//表名

private?$_where?=?null;//where條件

private?$_order?=?null;//order排序

private?$_limit?=?null;//limit限定查詢

private?$_group?=?null;//group分組

private?$_configs?=?array(

'hostname'?=>?'localhost',

'dbname'???=>?'test',

'username'?=>?'root',

'password'?=>?'1234'

);//數據庫配置

/**

*?構造函數,連接數據庫

*/

public?function?__construct(){

$link?=?$this->_db;

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;

}

}

/**

*?獲取所有數據

*

*?@param?????????$table??The?table

*

*?@return?????boolean??All.

*/

public?function?getAll($table=null){

$link?=?$this->_db;

if(!$link)return?false;

$sql?=?"SELECT?*?FROM?{$table}";

$data?=?mysqli_fetch_all($this->execute($sql));

return?$data;

}

public?function?table($table){

$this->_table?=?$table;

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;

}

$sql?=?"SELECT?{$fields}?FROM?{$this->_table}?{$this->_where}?{$this->_order}?{$this->_limit}";

$data?=?mysqli_fetch_all($this->execute($sql));

return?$data;

}

/**

*?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;

}

/**

*?where條件

*

*?@param??????string??$where??The?where

*

*?@return???????(?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($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;

}

/**

*?limit限定查詢

*

*?@param??????string??$limit??The?limit

*

*?@return???????(?description_of_the_return_value?)

*/

public?function?limit($limit=''){

$limitStr?=?'';

$link?=?$this->_db;

if(!$link)return?$link;

if(is_string($limit)||!empty($limit)){

$limitStr?=?"LIMIT?".$limit;

}elseif(is_numeric($limit)){

$limitStr?=?"LIMIT?".$limit;

}

$this->_limit?=?$limitStr;

return?$this;

}

/**

*?執行sql語句

*

*?@param?????????$sql????The?sql

*

*?@return?????boolean??(?description_of_the_return_value?)

*/

public?function?execute($sql=null){

$link?=?$this->_db;

if(!$link)return?false;

$res?=?mysqli_query($this->_db,$sql);

if(!$res){

$errors?=?mysqli_error_list($this->_db);

$this->ShowException("報錯啦!
錯誤號:".$errors[0]['errno']."
SQL錯誤狀態:".$errors[0]['sqlstate']."
錯誤信息:".$errors[0]['error']);

die();

}

return?$res;

}

/**

*?插入數據

*

*?@param?????????$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})";

mysqli_query($this->_db,$sql);

$insertId?=?mysqli_insert_id($this->_db);

return?$insertId;

}

/**

*?更新數據

*

*?@param????????$data???The?data

*

*?@return???????(?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???????(?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????????$var????The?variable

*/

private?function?ShowException($var){

if(is_bool($var)){

var_dump($var);

}else?if(is_null($var)){

var_dump(NULL);

}else{

echo?"

".print_r($var,true)."";

}

}

}

$db?=?new?Db();

//查詢操作

var_dump($db->table('user')->where('id?>?2')->order('id?desc')->limit('2,4')->select());

//插入操作

var_dump($db->table('user')->insert(array('username'=>'user','password'=>'pwd')));

//更新操作

var_dump($db->table('user')->where('id?=?1')->update(array('username'=>'user1','password'=>'pwd1')));

//刪除操作

var_dump($db->table('user')->where('id?=?1')->delete());

總結

以上是生活随笔為你收集整理的thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。