Inhaltsverzeichnis
Db类的介绍
Heim Backend-Entwicklung PHP-Tutorial PHP实现的mysql数据库操作类

PHP实现的mysql数据库操作类

Jun 23, 2016 pm 01:09 PM

数据库操作类是由 迹忆博客提供

Db类的介绍

1.采用单例设计模式 该类采用单例设计模式,保证了该类实例对象的唯一性 实现方式

public static $_instance; //静态属性,存储实例对象
Nach dem Login kopieren
/** * 私有化构造函数 这是构造单例设计模式必须的一步 */private function __construct($config=''){    $this->config = $this->parseConfig($config);}
Nach dem Login kopieren
/** * 实例化对象 采用静态公共方法 */public static function Instance(){    if(self::$_instance instanceof self){        return self::$_instance;    }    self::$_instance = new self;    return self::$_instance;}
Nach dem Login kopieren

2.功能介绍

首先该类支持主从复制数据库的连接,支持一主多从模式的数据库

当线程正在连接的一台从服务器宕机时,程序会自动重新连接其他正常的从服务器

其次当新增数据到数据表中时,该类支持一次添加多条数据,并且这多条数据可以是不同的表

可以通过addMore函数的第二个参数来指明是多表插入,其实现核心代码如下

/** * 一次性插入多条数据,支持不同表的插入 * 当使用多表插入功能时需要在第二个参数中指定 $options['multitable'] = true * 并且$data的格式为 * array( * '表名1'=>array(array(),array()), * '表名2'=>array(array(),array()) * ) * @param array $data * @param array $options * @return boolean */ public function addMore($data = array(),$options = array()){       if(isset($options['table']))           $this->table($options['table']);       if(!is_array($data)) return false;       /* * 开启事务处理多条语句 */       $this->startTransaction();       foreach($data as $key=>$val){            //查看是否是多表插入            if(isset($options['multitable'])&&$options['multitable']){                /* * 多表插入,则$key为表名,$val为要插入的数据 * 使用递归的方式再次对多条数据进行插入 */                $res = $this->addMore($val,array('table'=>$key));            }else{                //单表插入                $res = $this->add($val);            }            if(!$res){                  //如果有一条数据插入失败,则回滚事务,撤销所有的操作                $this->rollback();                return false;            }       }       //如果所有插入操作无误,则提交事务       $this->commit();       return true;}
Nach dem Login kopieren

同时支持事务处理,当多条插入数据之中的一条数据插入失败,可通过事务回滚撤销其它插入的数据

3.其它支持正常的增删改查

下面介绍使用到的函数的用法

1)实例化该对象

使用该类需要先实例化该类的对象

$obj = Db::Instance();
Nach dem Login kopieren

2) 查找数据

查找数据用到的函数有 select()和find()两个函数

select()函数查找多条数据

使用实例

$res = $obj->field('id,name')->where('id > 10')->select();
Nach dem Login kopieren

返回值:

查找失败 返回 false 查找成功 返回多条数据

array(    array('id'=>11,'name'=>'迹忆博客1'),    array('id'=>12,'name'=>'迹忆博客2'),)
Nach dem Login kopieren

find()是返回一条数据

$res = $obj->field('id,name')->where('id=10')->find()
Nach dem Login kopieren

返回值

查找失败 返回 false 查找成功 返回一条数据

array('id'=>10,'name'=>'迹忆博客')
Nach dem Login kopieren

3)添加数据

添加数据有两个函数 add($data,$options) 和addMore($data,$options)

add($data.$options)
Nach dem Login kopieren

$data 要添加的数据

数据格式

array('id'=>13,'name'=>'onmpw')
Nach dem Login kopieren

$options 可选参数

可指定表名 格式为 array('table'=>'表名') 此处指定表名的优先级最高

返回值

插入失败 返回 false 插入成功 返回插入的条数

addMore($data,$options)
Nach dem Login kopieren

可以通过$options选项指定是夺标插入还是单表插入

'multitable'=>true   多表插入  如果设定此项则默认是单表插入  多表插入$data的数据格式$data = array(   'tablename1'=>array(     array('id'=>20,'name'=>'迹忆博客1'),    array('id'=>21,'name'=>'迹忆博客2'),    array('id'=>22,'name'=>'迹忆博客3')   ),   'tablename2'=>array(     array('id'=>20,'name'=>'迹忆博客1','url'=>'www.onmpw.com'),    array('id'=>21,'name'=>'迹忆博客2','url'=>'www.onmpw.com'),    array('id'=>22,'name'=>'迹忆博客3','url'=>'www.onmpw.com')   ))
Nach dem Login kopieren
'multitable'=>false / 不设定此项 单表插入 $data的数据格式为    $data = array(    array('id'=>31,'name'=>'迹忆博客1','url'=>'www.onmpw.com'),    array('id'=>32,'name'=>'迹忆博客2','url'=>'www.onmpw.com'),    array('id'=>33,'name'=>'迹忆博客3','url'=>'www.onmpw.com'),    )
Nach dem Login kopieren

'table'=>'表名' 指定插入数据的数据表名,此项在单表插入时有效,并且较之于其他指定表名的方式优先级高

返回值

插入失败 返回 false 插入成功返回插入的条数

4)修改 update($data,$options)

修改数据函数

$data 要修改的数据,格式为

array('name'=>'onmpw','url'=>'http://onmpw.com');
Nach dem Login kopieren

$options 可以指定表名

'table'=>'表名'

返回值

更新失败 返回 false 更新成功返回更新的条数

5)删除 delete($options)

$options 可以指定表名

'table'=>'表名' 此种指定表名的优先级最高

实例

$res = $obj->table('repl')->where('id=10')->delete(); //删除repl表下id=10的记录$res = $obj->table('repl')->where('id=13')->delete(array('table'=>'test'));  //删除test表下id=13的记录
Nach dem Login kopieren

等价于

$res = $obj->where('id=13')->delete(array('table'=>'test'))
Nach dem Login kopieren

返回值

删除失败 返回false 删除成功返回 删除的记录条数

6) table($str) 函数 指定表名

$obj->table('test')  //指定当前操作的表为test表
Nach dem Login kopieren

返回值为 当前对象 object

7) where($where) 指定where条件

$where 可以是字符串也可以是数组

字符串

$obj->table('test')->where("name='迹忆博客',url='www.onmpw.com'");
Nach dem Login kopieren

数组

$obj->table('test')->where(array('name'=>'迹忆博客','url'=>'www.onmpw.com'))
Nach dem Login kopieren

返回值为 当前对象 object

8)field($field) 指定查询的字段名称

$obj->table('test')->field('name,url')->select();
Nach dem Login kopieren

如果在查询的时候不适用field()函数指定字段,默认会查询该表的所有字段

返回值为 当前对象 object

9) orderby($str) 指定按照那个字段排序

$obj->table('test')->field('id,name,url')->where("name='迹忆博客'")->orderby('id DESC')->select();
Nach dem Login kopieren

按照id 降序排列

$obj->table('test')->field('id,name,url')->where("name='迹忆博客'")->orderby('id')->select();
Nach dem Login kopieren

也可以不指定是降序或者升序

返回值为 当前对象 object

10) limit($limit)

$limt 可以为字符串也可以为数组

数组

array(page,listrows)
Nach dem Login kopieren

page 指定当前的页数 listrows指定每页取出的条数

字符串

10,12

10表示从第十条记录开始取,12表示取出的条数

$res = $obj->table('test')->field('id,name,url')->where("name='迹忆博客'")->orderby('id DESC')->limit('10,12')->select()
Nach dem Login kopieren

返回值为 当前对象 object

11)sql($sql) 执行指定的sql语句

$sql = "select name,url from test where name='迹忆博客'";$res = $obj->sql($sql);
Nach dem Login kopieren

返回执行的结果

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

See all articles