The example in this article describes the mysqli class encapsulated in php. Share it with everyone for your reference, as follows:
Class:
<?php header('content-type:text/html;charset=utf-8'); /* 掌握滿足單例模式的必要條件 (1)私有的構(gòu)造方法-為了防止在類外使用new關(guān)鍵字實(shí)例化對象 (2)私有的成員屬性-為了防止在類外引入這個(gè)存放對象的屬性 (3)私有的克隆方法-為了防止在類外通過clone成生另一個(gè)對象 (4)公有的靜態(tài)方法-為了讓用戶進(jìn)行實(shí)例化對象的操作 */ class ConnectMysqli{ //私有的屬性 private static $dbcon=false; private $host; private $port; private $user; private $pass; private $db; private $charset; private $link; //私有的構(gòu)造方法 private function __construct($config=array()){ $this->host = $config['host'] ? $config['host'] : 'localhost'; $this->port = $config['port'] ? $config['port'] : '3306'; $this->user = $config['user'] ? $config['user'] : 'root'; $this->pass = $config['pass'] ? $config['pass'] : 'root'; $this->db = $config['db'] ? $config['db'] : 'small2'; $this->charset=isset($arr['charset']) ? $arr['charset'] : 'utf8'; //連接數(shù)據(jù)庫 $this->db_connect(); //選擇數(shù)據(jù)庫 $this->db_usedb(); //設(shè)置字符集 $this->db_charset(); } //連接數(shù)據(jù)庫 private function db_connect(){ $this->link=mysqli_connect($this->host.':'.$this->port,$this->user,$this->pass); if(!$this->link){ echo "數(shù)據(jù)庫連接失敗<br>"; echo "錯(cuò)誤編碼".mysqli_errno($this->link)."<br>"; echo "錯(cuò)誤信息".mysqli_error($this->link)."<br>"; exit; } } //設(shè)置字符集 private function db_charset(){ mysqli_query($this->link,"set names {$this->charset}"); } //選擇數(shù)據(jù)庫 private function db_usedb(){ mysqli_query($this->link,"use {$this->db}"); } //私有的克隆 private function __clone(){ die('clone is not allowed'); } //公用的靜態(tài)方法 public static function getIntance(){ if(self::$dbcon==false){ self::$dbcon=new self; } return self::$dbcon; } //執(zhí)行sql語句的方法 public function query($sql){ $res=mysqli_query($this->link,$sql); if(!$res){ echo "sql語句執(zhí)行失敗<br>"; echo "錯(cuò)誤編碼是".mysqli_errno($this->link)."<br>"; echo "錯(cuò)誤信息是".mysqli_error($this->link)."<br>"; } return $res; } //打印數(shù)據(jù) public function p($arr){ echo "<pre class="brush:php;toolbar:false">"; print_r($arr); echo ""; } public function v($arr){ echo "
"; var_dump($arr); echo ""; } //獲得最后一條記錄id public function getInsertid(){ return mysqli_insert_id($this->link); } /** * 查詢某個(gè)字段 * @param * @return string or int */ public function getOne($sql){ $query=$this->query($sql); return mysqli_free_result($query); } //獲取一行記錄,return array 一維數(shù)組 public function getRow($sql,$type="assoc"){ $query=$this->query($sql); if(!in_array($type,array("assoc",'array',"row"))){ die("mysqli_query error"); } $funcname="mysqli_fetch_".$type; return $funcname($query); } //獲取一條記錄,前置條件通過資源獲取一條記錄 public function getFormSource($query,$type="assoc"){ if(!in_array($type,array("assoc","array","row"))) { die("mysqli_query error"); } $funcname="mysqli_fetch_".$type; return $funcname($query); } //獲取多條數(shù)據(jù),二維數(shù)組 public function getAll($sql){ $query=$this->query($sql); $list=array(); while ($r=$this->getFormSource($query)) { $list[]=$r; } return $list; } /** * 定義添加數(shù)據(jù)的方法 * @param string $table 表名 * @param string orarray $data [數(shù)據(jù)] * @return int 最新添加的id */ public function insert($table,$data){ //遍歷數(shù)組,得到每一個(gè)字段和字段的值 $key_str=''; $v_str=''; foreach($data as $key=>$v){ if(empty($v)){ die("error"); } //$key的值是每一個(gè)字段s一個(gè)字段所對應(yīng)的值 $key_str.=$key.','; $v_str.="'$v',"; } $key_str=trim($key_str,','); $v_str=trim($v_str,','); //判斷數(shù)據(jù)是否為空 $sql="insert into $table ($key_str) values ($v_str)"; $this->query($sql); //返回上一次增加操做產(chǎn)生ID值 return $this->getInsertid(); } /* * 刪除一條數(shù)據(jù)方法 * @param1 $table, $where=array('id'=>'1') 表名 條件 * @return 受影響的行數(shù) */ public function deleteOne($table, $where){ if(is_array($where)){ foreach ($where as $key => $val) { $condition = $key.'='.$val; } } else { $condition = $where; } $sql = "delete from $table where $condition"; $this->query($sql); //返回受影響的行數(shù) return mysqli_affected_rows($this->link); } /* * 刪除多條數(shù)據(jù)方法 * @param1 $table, $where 表名 條件 * @return 受影響的行數(shù) */ public function deleteAll($table, $where){ if(is_array($where)){ foreach ($where as $key => $val) { if(is_array($val)){ $condition = $key.' in ('.implode(',', $val) .')'; } else { $condition = $key. '=' .$val; } } } else { $condition = $where; } $sql = "delete from $table where $condition"; $this->query($sql); //返回受影響的行數(shù) return mysqli_affected_rows($this->link); } /** * [修改操作description] * @param [type] $table [表名] * @param [type] $data [數(shù)據(jù)] * @param [type] $where [條件] * @return [type] */ public function update($table,$data,$where){ //遍歷數(shù)組,得到每一個(gè)字段和字段的值 $str=''; foreach($data as $key=>$v){ $str.="$key='$v',"; } $str=rtrim($str,','); //修改SQL語句 $sql="update $table set $str where $where"; $this->query($sql); //返回受影響的行數(shù) return mysqli_affected_rows($this->link); } } ?>
Usage test:
//mysqli測試 $db=ConnectMysqli::getIntance(); //var_dump($db); /*$sql="select * from acticle"; $list=$db->getAll($sql); $db->p($list);*/ /*$sql="select * from acticle where acticle_id=95"; $list=$db->getRow($sql); $db->p($list); */ /*$sql="select title from acticle"; $list=$db->getOne($sql); $db->p($list);不行*/ //$list=$db->insert("users",$_POST); //$del=$db->deleteOne("users","id=29"); //$del=$db->deleteAll("users","id in(27,28)"); //$up=$db->update("users",$_POST,"id=27"); //print_R($list);
For more articles related to complete examples of mysqli classes encapsulated in PHP, please pay attention to the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

When writing web applications using PHP, a MySQL database is often used to store data. PHP provides a way to interact with the MySQL database called MySQLi. However, sometimes when using MySQLi, you will encounter an error message, as shown below: PHPFatalerror:Calltoundefinedfunctionmysqli_connect() This error message means that PHP cannot find my

PDOPDO is an object-oriented database access abstraction layer that provides a unified interface for PHP, allowing you to use the same code to interact with different databases (such as Mysql, postgresql, oracle). PDO hides the complexity of underlying database connections and simplifies database operations. Advantages and Disadvantages Advantages: Unified interface, supports multiple databases, simplifies database operations, reduces development difficulty, provides prepared statements, improves security, supports transaction processing Disadvantages: performance may be slightly lower than native extensions, relies on external libraries, may increase overhead, demo code uses PDO Connect to mysql database: $db=newPDO("mysql:host=localhost;dbnam

If you encounter the following error message when using PHP to connect to a MySQL database: PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, then you can try to solve this problem by following the steps below. To confirm whether the MySQL service is running normally, you should first check whether the MySQL service is running normally. If the service is not running or fails to start, it may cause a connection refused error. you can

Solution to php unable to connect to mysqli: 1. Open the "php.ini" file; 2. Find "mysqli.reconnect"; 3. Change "mysqli.reconnect = OFF" to "mysqli.reconnect = on".

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

The running file of mysql is mysqld; mysqld is an executable file, which represents the Mysql server program. Executing this file can directly start a server process; and mysqld_safe is a startup script, which will indirectly call mysqld and also start a monitor. process.

When using the mysqli extension to connect and operate a MySQL database, you sometimes encounter the error PHPFatalerror:Calltoundefinedmethodmysqli::prepare(). This error is usually caused by the following reasons: PHP has insufficient support for the mysqli extension; the mysqli extension is not loaded or configured correctly; there are syntax errors in the PHP code; the MySQL server is not correctly configured or running

When developing websites using PHP, database operations are very common. MySQLi is an extension commonly used in PHP to operate MySQL databases. It provides a relatively complete object-oriented interface, procedural interface, and supports operations of prepared statements. But sometimes when we use mysqli's prepared statements, we will encounter such an error: PHPFatalerror:Calltoundefinedfunctionmysqli_stmt_bin
