


PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译),mysqli面向对象_PHP教程
PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译),mysqli面向对象
1、和mysql扩展库的区别:
(1 安全性、稳定性更高
(2 提供了面向对象和面向过程两种风格
2、php.ini 中的 extension=php_mysqli.dll 解除封印
3、面向对象:查询列表
1 <?php 2 3 //mysqli 操作数据(面向对象风格) 4 5 #1、创建Mysql对象 6 7 $mysqli=new MySQLi("127.0.0.1","root","daomul","test"); 8 if(!$mysqli) 9 { 10 die("连接失败!".$mysqli->connect_error); 11 } 12 13 #2、操作数据库 14 15 $sql="select * from user1"; 16 $res=$mysqli->query($sql); 17 #3、处理结果 18 19 while($row=$res->fetch_row()) 20 { 21 foreach($row as $key=> $val) 22 { 23 echo "-- $val"; 24 } 25 echo "<br/>"; 26 } 27 #4、关闭资源 28 $res->free();//释放内存 29 $mysqli->close();//关闭连接 30 31 ?>

4、面向对象:封装类后实现
4.1 Sqliconnect.class.php

1 <?php 2 3 Class Sqliconnect 4 { 5 private $mysqli; 6 private static $host="127.0.0.1"; 7 private static $root="root"; 8 private static $password="daomul"; 9 private static $db="test"; 10 11 function __construct() 12 { 13 $this->mysqli=new MySQLi(self::$host,self::$root,self::$password,self::$db); 14 if(!$this->mysqli) 15 { 16 die("数据库连接失败!".$this->mysqli->connect_error); 17 } 18 19 $this->mysqli->query("set names utf8"); 20 } 21 22 //查询操作 23 public function excute_dql($sql) 24 { 25 $res=$this->mysqli->query($sql) or die("数据查询失败".$this->mysqli->error); 26 return $res; 27 28 } 29 30 //增删改操作 31 public function excute_dml($sql) 32 { 33 $res=$this->mysqli->query($sql) or die("数据操作失败".$this->mysqli->error); 34 if(!$res) 35 { 36 echo "数据操作失败"; 37 } 38 else 39 { 40 if($this->mysqli->affected_rows>0) 41 { 42 echo "操作成功!"; 43 } 44 else 45 { 46 echo "0行数据受影响!"; 47 } 48 } 49 } 50 51 } 52 ?>
4.2 调用页面startsqli.php
1 <?php 2 3 //mysqli 操作数据(面向对象风格) 4 5 6 require_once "Sqliconnect.class.php"; 7 8 $Sqliconnect=new Sqliconnect(); 9 10 //$sql="insert into user1(name,password,email,age) values('帝都',md5('gg'),'sd@sohu.com',23)"; 11 //$sql="delete from user1 where id=11"; 12 //$res=$Sqliconnect->excute_dml($sql); 13 14 $sql="select name from user1;"; 15 $res=$Sqliconnect->excute_dql($sql); 16 while($row=$) 17 18 $res->free(); 19 ?>
5、同时执行多条数据库语句 multiQuery.php
1 <?php 2 3 //mysqli 操作数据(面向对象风格) 4 5 #1、创建Mysql对象 6 7 $mysqli=new MySQLi("127.0.0.1","root","daomul","test"); 8 if(!$mysqli) 9 { 10 die("连接失败!".$mysqli->connect_error); 11 } 12 13 #2、操作数据库 14 15 $sqls="select * from user1;"; 16 $sqls.="select * from user1"; 17 18 #3、处理结果 19 20 if($res=$mysqli->multi_query($sqls)) 21 { 22 echo "211"; 23 do 24 { 25 //从mysqli连续取出第一个结果集 26 $result=$mysqli->store_result(); 27 28 //显示mysqli result对象 29 while($row=$result->fetch_row()) 30 { 31 foreach($row as $key=> $val) 32 { 33 echo "-- $val"; 34 } 35 echo "<br/>"; 36 } 37 38 $result->free();//及时释放当前结果集,并进入下一结果集 39 40 //判断是否有下一个结果集 41 if(!$mysqli->more_results()) 42 { 43 break; 44 } 45 echo "<br/>************新的结果集**************"; 46 47 }while($mysqli->next_result()); 48 } 49 50 #4、关闭资源 51 $mysqli->close();//关闭连接 52 53 54 ?>
6、事务控制
1 <?php 2 3 //mysqli 操作数据(面向对象风格) 4 5 6 // 数据库 :create table account(id int primary key,balance float); 7 8 $mysqli=new MySQLi("127.0.0.1","root","daomul","test"); 9 if(!$mysqli) 10 { 11 die("数据库连接失败!".$mysqli->connect_error); 12 } 13 //将提交设为false 14 $mysqli->autocommit(false); 15 16 $sql1="update account set balance=balance+1 where id=1;";//没错的语句 17 $sql2="update accounterror2 set balance=balance-1 where id=2";//有错的语句 18 19 $res1=$mysqli->query($sql1); 20 $res2=$mysqli->query($sql2); 21 22 if(!$res1||!$res2) 23 { 24 //回滚:其中一个不成功即回滚不提交 25 echo "有错,回滚,请重新提交!"; 26 $mysqli->rollback();//die("操作失败!".$mysqli->error); 27 } 28 else 29 { 30 //所有均成功则提交 31 echo "所有提交成功!"; 32 $mysqli->commit(); 33 } 34 35 $mysqli->close(); 36 /* 37 1、 start transaction; 开启事务 38 2、svaepoint a; 做保存点 39 3、执行操作1; 40 4、 svaepoint b; 41 5、执行操作2; 42 ... 43 6、rollback to a/b; 回滚或者是提交 44 7、commit 45 46 事务控制特点acid 原子性/一致性/隔离性/持久性 47 */ 48 ?>
7、预处理技术
主要在连接和编译过程精简,还可以SQL防止注入
7.1 预编译插入多个数据
1 <?php 2 3 //mysqli 预编译演示 4 5 #1、创建mysqli对象 6 $mysqli=new MySQLi("127.0.0.1","root","daomul","test"); 7 if(!$mysqli) 8 { 9 die("数据库连接失败!".$mysqli->connect_error); 10 } 11 12 #2、创建预编译对象 13 $sql="insert into user1(name,password,email,age) values(?,?,?,?);";//暂时不赋值,用问号代替 14 $stmt=$mysqli->prepare($sql) or die($mysqli->error); 15 16 /********************************可重复执行时需要的代码start*********************************/ 17 #3、绑定参数 18 $name='小明5'; 19 $password='34f'; 20 $email='ssd@qq.com'; 21 $age='1'; 22 23 #4、参数赋值(第一个参数指代参数的类型缩写,string-s,int-i,double-d,bool-b 24 $stmt->bind_param("sssi",$name,$password,$email,$age); 25 26 #5、执行代码(返回布尔类型) 27 $flag=$stmt->execute(); 28 29 /********************************可重复执行时需要的代码 end************************************/ 30 31 #6、结果以及释放 32 33 if(!$flag) 34 { 35 die("操作失败".$stmt->error); 36 } 37 else 38 { 39 echo "操作成功!"; 40 } 41 42 $mysqli->close(); 43 44 45 ?>
7.2 预编译查询多个数据
1 <?php 2 3 //mysqli 预编译演示 4 5 #1、创建mysqli对象 6 $mysqli=new MySQLi("127.0.0.1","root","daomul","test"); 7 if(!$mysqli) 8 { 9 die("数据库连接失败!".$mysqli->connect_error); 10 } 11 12 /********************************可重复执行时需要的代码 start*******************************/ 13 14 #2、创建预编译对象 15 $sql="select id,name,email from user1 where id>?;";//id,name,email和后面的结果集bind_result()对应 16 $stmt=$mysqli->prepare($sql) or die($mysqli->error); 17 18 #3、绑定参数 19 $id=5; 20 21 #4、参数赋值(第一个参数指代参数的类型缩写,string-s,int-i,double-d,bool-b 22 $stmt->bind_param("i",$id);//绑定参数 23 $stmt->bind_result($id,$name,$email);//绑定结果集 24 25 #5、执行代码(返回布尔类型) 26 $stmt->execute(); 27 28 #6、取出结果集显示 29 while($stmt->fetch()) 30 { 31 echo "<br/>$id--$name--$email"; 32 } 33 34 /********************************可重复执行时需要的代码 end*******************************/ 35 36 #7、结果以及释放 37 38 //释放结果 39 $stmt->free_result(); 40 //关闭预编译语句 41 $stmt->close(); 42 //关闭数据库连接 43 $mysqli->close(); 44 45 46 ?>
8、其他函数
(1 获取行数和列数 num_rows field_count
(2 获取结果集的一列 :表头 例如
$result=$mysqli->query();
$result->fetch_field();
(3 取出数据
$row=$result->fetch_row(); //获得每一行数据
再通过 foreach($row as $val){} 取出每一个数据

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Amalan pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pengguna dalam pangkalan data MySQL Pengenalan: Dalam pembinaan Internet moden, e-mel ialah alat komunikasi yang penting. Sama ada pendaftaran pengguna, tetapan semula kata laluan atau pengesahan pesanan dalam e-dagang, menghantar e-mel adalah fungsi penting. Artikel ini akan memperkenalkan cara menggunakan PHPMailer untuk menghantar e-mel dan menyimpan maklumat e-mel ke jadual maklumat pengguna dalam pangkalan data MySQL. 1. Pasang pustaka PHPMailer PHPMailer ialah

Memandangkan jumlah data terus meningkat, prestasi pangkalan data telah menjadi isu yang semakin penting. Pemprosesan pemisahan data panas dan sejuk ialah penyelesaian berkesan yang boleh memisahkan data panas dan data sejuk, dengan itu meningkatkan prestasi dan kecekapan sistem. Artikel ini akan memperkenalkan cara menggunakan bahasa Go dan pangkalan data MySQL untuk memisahkan data panas dan sejuk. 1. Apakah pemprosesan pemisahan data panas dan sejuk Pemprosesan pemisahan data panas dan sejuk ialah cara mengklasifikasikan data panas dan data sejuk. Data panas merujuk kepada data dengan kekerapan akses tinggi dan keperluan data sejuk

Sejauh manakah saya boleh membangunkan kemahiran pangkalan data MySQL untuk berjaya digunakan? Dengan perkembangan pesat era maklumat, sistem pengurusan pangkalan data telah menjadi komponen yang amat diperlukan dan penting dalam semua lapisan masyarakat. Sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, MySQL mempunyai pelbagai bidang aplikasi dan peluang pekerjaan. Jadi, sejauh manakah kemahiran pangkalan data MySQL perlu dibangunkan untuk berjaya digunakan? Pertama sekali, menguasai prinsip asas dan pengetahuan asas MySQL adalah keperluan paling asas. MySQL ialah pengurusan pangkalan data hubungan sumber terbuka

Apabila jumlah data meningkat, sandaran pangkalan data menjadi lebih penting. Untuk pangkalan data MySQL, kita boleh menggunakan bahasa Go untuk mencapai sandaran tambahan automatik. Artikel ini akan memperkenalkan secara ringkas cara menggunakan bahasa Go untuk melaksanakan sandaran tambahan data pangkalan data MySQL. 1. Pasang persekitaran bahasa Go Mula-mula, kita perlu memasang persekitaran bahasa Go secara setempat. Anda boleh pergi ke laman web rasmi untuk memuat turun pakej pemasangan yang sepadan dan memasangnya. 2. Pasang perpustakaan yang sepadan Bahasa Go menyediakan banyak perpustakaan pihak ketiga untuk mengakses pangkalan data MySQL, antaranya yang paling biasa digunakan ialah.

Bagaimana untuk menggunakan pangkalan data MySQL untuk analisis siri masa? Data siri masa merujuk kepada koleksi data yang disusun mengikut urutan masa, yang mempunyai kesinambungan dan korelasi temporal. Analisis siri masa ialah kaedah analisis data penting yang boleh digunakan untuk meramalkan arah aliran masa hadapan, menemui perubahan kitaran, mengesan penyimpangan, dsb. Dalam artikel ini, kami akan memperkenalkan cara menggunakan pangkalan data MySQL untuk analisis siri masa, bersama-sama dengan contoh kod. Buat jadual data Mula-mula, kita perlu mencipta jadual data untuk menyimpan data siri masa. Katakan kita ingin menganalisis nombor

Dalam beberapa tahun kebelakangan ini, bahasa Go telah menjadi semakin popular di kalangan pembangun dan telah menjadi salah satu bahasa pilihan untuk membangunkan aplikasi web berprestasi tinggi. MySQL juga merupakan pangkalan data popular yang digunakan secara meluas. Dalam proses menggabungkan kedua-dua teknologi ini, caching adalah bahagian yang sangat penting. Berikut akan memperkenalkan cara menggunakan bahasa Go untuk mengendalikan cache pangkalan data MySQL. Konsep caching Dalam aplikasi web, caching ialah lapisan tengah yang dicipta untuk mempercepatkan capaian data. Ia digunakan terutamanya untuk menyimpan data yang kerap diminta

Bagaimana untuk menggunakan pangkalan data MySQL untuk pemprosesan imej? MySQL ialah sistem pengurusan pangkalan data hubungan yang berkuasa Selain menyimpan dan mengurus data, ia juga boleh digunakan untuk pemprosesan imej. Artikel ini akan memperkenalkan cara menggunakan pangkalan data MySQL untuk pemprosesan imej dan menyediakan beberapa contoh kod. Sebelum anda bermula, pastikan anda telah memasang pangkalan data MySQL dan biasa dengan pernyataan SQL asas. Buat jadual pangkalan data Mula-mula, buat jadual pangkalan data baharu untuk menyimpan data imej. Struktur jadual boleh seperti berikut

Dengan jumlah data yang besar yang perlu disimpan dan diproses, MySQL telah menjadi salah satu pangkalan data hubungan yang paling biasa digunakan dalam pembangunan aplikasi. Bahasa Go menjadi semakin popular di kalangan pembangun kerana pemprosesan serentak yang cekap dan sintaks ringkasnya. Artikel ini akan membawa pembaca untuk melaksanakan sambungan pangkalan data MySQL yang boleh dipercayai melalui bahasa Go, membolehkan pembangun membuat pertanyaan dan menyimpan data dengan lebih cekap. 1. Beberapa cara untuk bahasa Go untuk menyambung ke pangkalan data MySQL Biasanya terdapat tiga cara untuk menyambung ke pangkalan data MySQL dalam bahasa Go, iaitu: 1. Pustaka pihak ketiga
