国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHP mysqli 擴展庫(面向對象/數(shù)據(jù)庫操作封裝/事務控制/預編譯),mysqli面向對象
首頁 后端開發(fā) php教程 PHP mysqli 擴展庫(面向對象/數(shù)據(jù)庫操作封裝/事務控制/預編譯),mysqli面向對象_PHP教程

PHP mysqli 擴展庫(面向對象/數(shù)據(jù)庫操作封裝/事務控制/預編譯),mysqli面向對象_PHP教程

Jul 12, 2016 am 08:50 AM
mysql數(shù)據(jù)庫

PHP mysqli 擴展庫(面向對象/數(shù)據(jù)庫操作封裝/事務控制/預編譯),mysqli面向對象

?

1、和mysql擴展庫的區(qū)別:

? ? ?(1 ? 安全性、穩(wěn)定性更高

? ? ?(2 ?提供了面向對象和面向過程兩種風格

?

2、php.ini ?中的 ?extension=php_mysqli.dll 解除封印

3、面向對象:查詢列表

?
 1 <?php
 2 
 3   //mysqli 操作數(shù)據(jù)(面向對象風格)
 4   
 5   #1、創(chuàng)建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、操作數(shù)據(jù)庫
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、面向對象:封裝類后實現(xiàn)

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("數(shù)據(jù)庫連接失敗!".$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("數(shù)據(jù)查詢失敗".$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("數(shù)據(jù)操作失敗".$this->mysqli->error);
34               if(!$res)
35               {
36                    echo "數(shù)據(jù)操作失敗";
37               }
38               else
39               {
40                    if($this->mysqli->affected_rows>0)
41                    {
42                          echo "操作成功!";
43                    }
44                    else
45                    {
46                         echo "0行數(shù)據(jù)受影響!";
47                    }
48               }
49         }
50         
51    }
52 ?>

4.2 調用頁面startsqli.php

 1 <?php
 2 
 3   //mysqli 操作數(shù)據(jù)(面向對象風格)
 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、同時執(zhí)行多條數(shù)據(jù)庫語句 multiQuery.php

 1 <?php
 2 
 3   //mysqli 操作數(shù)據(jù)(面向對象風格)
 4   
 5   #1、創(chuàng)建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、操作數(shù)據(jù)庫
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連續(xù)取出第一個結果集
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 操作數(shù)據(jù)(面向對象風格)
 4   
 5  
 6    // 數(shù)據(jù)庫 :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("數(shù)據(jù)庫連接失??!".$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、執(zhí)行操作1; 
40     4、 svaepoint b;
41     5、執(zhí)行操作2;
42     ...
43     6、rollback to a/b; 回滾或者是提交
44     7、commit 
45     
46     事務控制特點acid  原子性/一致性/隔離性/持久性
47    */
48 ?>

7、預處理技術

主要在連接和編譯過程精簡,還可以SQL防止注入

7.1 預編譯插入多個數(shù)據(jù)

 1 <?php
 2 
 3   //mysqli 預編譯演示
 4   
 5   #1、創(chuàng)建mysqli對象
 6   $mysqli=new MySQLi("127.0.0.1","root","daomul","test");
 7   if(!$mysqli)
 8   {
 9        die("數(shù)據(jù)庫連接失??!".$mysqli->connect_error);
10   }
11   
12   #2、創(chuàng)建預編譯對象
13   $sql="insert into user1(name,password,email,age) values(?,?,?,?);";//暫時不賦值,用問號代替
14   $stmt=$mysqli->prepare($sql) or die($mysqli->error);
15  
16   /********************************可重復執(zhí)行時需要的代碼start*********************************/
17   #3、綁定參數(shù)
18   $name='小明5';
19   $password='34f';
20   $email='ssd@qq.com';
21   $age='1';
22   
23   #4、參數(shù)賦值(第一個參數(shù)指代參數(shù)的類型縮寫,string-s,int-i,double-d,bool-b
24   $stmt->bind_param("sssi",$name,$password,$email,$age);
25   
26   #5、執(zhí)行代碼(返回布爾類型)
27   $flag=$stmt->execute();
28   
29  /********************************可重復執(zhí)行時需要的代碼 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 預編譯查詢多個數(shù)據(jù)

 1 <?php
 2 
 3   //mysqli 預編譯演示
 4   
 5   #1、創(chuàng)建mysqli對象
 6   $mysqli=new MySQLi("127.0.0.1","root","daomul","test");
 7   if(!$mysqli)
 8   {
 9        die("數(shù)據(jù)庫連接失?。?quot;.$mysqli->connect_error);
10   }
11   
12    /********************************可重復執(zhí)行時需要的代碼 start*******************************/
13  
14   #2、創(chuàng)建預編譯對象
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、綁定參數(shù)
19   $id=5;
20   
21   #4、參數(shù)賦值(第一個參數(shù)指代參數(shù)的類型縮寫,string-s,int-i,double-d,bool-b
22   $stmt->bind_param("i",$id);//綁定參數(shù)
23   $stmt->bind_result($id,$name,$email);//綁定結果集
24   
25   #5、執(zhí)行代碼(返回布爾類型)
26   $stmt->execute();
27   
28   #6、取出結果集顯示
29   while($stmt->fetch())
30   {
31       echo "<br/>$id--$name--$email";
32   }
33   
34   /********************************可重復執(zhí)行時需要的代碼 end*******************************/
35   
36   #7、結果以及釋放
37   
38   //釋放結果
39   $stmt->free_result();
40   //關閉預編譯語句
41   $stmt->close();
42   //關閉數(shù)據(jù)庫連接
43   $mysqli->close();
44   
45  
46 ?>
?

?

8、其他函數(shù)

? ? (1 ?獲取行數(shù)和列數(shù) ?num_rows ? field_count

? ? (2 ?獲取結果集的一列 :表頭?例如

? ? ? ? ? ? ? $result=$mysqli->query();

? ? ? ? ? ? ? $result->fetch_field();

? ? (3 取出數(shù)據(jù)

? ? ? ? ? ? ?$row=$result->fetch_row(); //獲得每一行數(shù)據(jù)

? ? ? ? ? ? ?再通過 foreach($row as $val){} 取出每一個數(shù)據(jù)

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1133533.htmlTechArticlePHP mysqli 擴展庫(面向對象/數(shù)據(jù)庫操作封裝/事務控制/預編譯),mysqli面向對象 1、和mysql擴展庫的區(qū)別: (1 安全性、穩(wěn)定性更高 (2 提供了...
本站聲明
本文內容由網友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

PHP開發(fā)實踐:使用PHPMailer發(fā)送郵件到MySQL數(shù)據(jù)庫中的用戶 PHP開發(fā)實踐:使用PHPMailer發(fā)送郵件到MySQL數(shù)據(jù)庫中的用戶 Aug 05, 2023 pm 06:21 PM

PHP開發(fā)實踐:使用PHPMailer發(fā)送郵件到MySQL數(shù)據(jù)庫中的用戶引言:在現(xiàn)代互聯(lián)網建設中,郵件是一種重要的溝通工具。無論是用戶注冊、密碼重置,還是電子商務中的訂單確認,發(fā)送電子郵件都是必不可少的功能。本文將介紹如何使用PHPMailer來發(fā)送電子郵件,并將郵件信息保存到MySQL數(shù)據(jù)庫中的用戶信息表中。一、安裝PHPMailer庫PHPMailer是

Go語言和MySQL數(shù)據(jù)庫:如何進行數(shù)據(jù)冷熱分離處理? Go語言和MySQL數(shù)據(jù)庫:如何進行數(shù)據(jù)冷熱分離處理? Jun 18, 2023 am 08:26 AM

隨著數(shù)據(jù)量的不斷增加,數(shù)據(jù)庫的性能成為了一個越來越重要的問題。數(shù)據(jù)冷熱分離處理是一種有效的解決方案,它可以將熱點數(shù)據(jù)和冷數(shù)據(jù)進行分離,從而提高系統(tǒng)的性能和效率。本文將介紹如何使用Go語言和MySQL數(shù)據(jù)庫進行數(shù)據(jù)冷熱分離處理。一、什么是數(shù)據(jù)冷熱分離處理數(shù)據(jù)冷熱分離處理是一種將熱點數(shù)據(jù)和冷數(shù)據(jù)進行分類處理的方式。熱點數(shù)據(jù)是指訪問頻率高、對性能要求高的數(shù)據(jù),冷數(shù)

如何使用MySQL數(shù)據(jù)庫進行時間序列分析? 如何使用MySQL數(shù)據(jù)庫進行時間序列分析? Jul 12, 2023 am 08:39 AM

如何使用MySQL數(shù)據(jù)庫進行時間序列分析?時間序列數(shù)據(jù)是指按照時間順序排列的數(shù)據(jù)集合,它具有時間上的連續(xù)性和相關性。時間序列分析是一種重要的數(shù)據(jù)分析方法,可以用于預測未來趨勢、發(fā)現(xiàn)周期性變化、檢測異常值等。在本文中,我們將介紹如何使用MySQL數(shù)據(jù)庫進行時間序列分析,并附上代碼示例。創(chuàng)建數(shù)據(jù)表首先,我們需要創(chuàng)建一個數(shù)據(jù)表來存儲時間序列數(shù)據(jù)。假設我們要分析的數(shù)

如何使用MySQL數(shù)據(jù)庫進行圖像處理? 如何使用MySQL數(shù)據(jù)庫進行圖像處理? Jul 14, 2023 pm 12:21 PM

如何使用MySQL數(shù)據(jù)庫進行圖像處理?MySQL是一種強大的關系型數(shù)據(jù)庫管理系統(tǒng),除了用于存儲和管理數(shù)據(jù)之外,它還可以用于圖像處理。本文將介紹如何使用MySQL數(shù)據(jù)庫進行圖像處理,并提供一些代碼示例。在開始之前,請確保已經安裝了MySQL數(shù)據(jù)庫,并且已經熟悉了基本的SQL語句。創(chuàng)建數(shù)據(jù)庫表格首先,創(chuàng)建一個新的數(shù)據(jù)庫表格,用于存儲圖像數(shù)據(jù)。表格的結構可以如下所

如何為 MySQL 數(shù)據(jù)庫實現(xiàn)雙向 SSL 認證 如何為 MySQL 數(shù)據(jù)庫實現(xiàn)雙向 SSL 認證 Sep 09, 2023 pm 07:36 PM

如何為MySQL數(shù)據(jù)庫實現(xiàn)雙向SSL認證什么是雙向SSL認證?雙向SSL(SecureSocketsLayer)認證是一種加密通信方式,它要求服務端和客戶端之間互相驗證對方的身份。在數(shù)據(jù)庫中,雙向SSL認證可確保只有經過授權的用戶和應用程序可以連接和通信,提高數(shù)據(jù)安全性。準備工作在開始配置雙向SSL認證之前,確保以下條件已滿足:已獲

MySQL數(shù)據(jù)庫技能培養(yǎng)到什么程度能夠成功就業(yè)? MySQL數(shù)據(jù)庫技能培養(yǎng)到什么程度能夠成功就業(yè)? Sep 12, 2023 pm 06:42 PM

MySQL數(shù)據(jù)庫技能培養(yǎng)到什么程度能夠成功就業(yè)?隨著信息化時代的快速發(fā)展,數(shù)據(jù)庫管理系統(tǒng)成為各行各業(yè)不可或缺的重要組成部分。而MySQL作為一種常用的關系型數(shù)據(jù)庫管理系統(tǒng),具有廣泛的應用領域和就業(yè)機會。那么,MySQL數(shù)據(jù)庫技能需要培養(yǎng)到什么程度,才能夠成功就業(yè)呢?首先,掌握MySQL的基本原理和基礎知識是最基本的要求。MySQL是一款開源的關系型數(shù)據(jù)庫管理

使用Go語言進行MySQL數(shù)據(jù)庫的數(shù)據(jù)增量備份的方法 使用Go語言進行MySQL數(shù)據(jù)庫的數(shù)據(jù)增量備份的方法 Jun 17, 2023 pm 02:28 PM

隨著數(shù)據(jù)量的增加,數(shù)據(jù)庫的備份變得越來越重要。而對于MySQL數(shù)據(jù)庫,我們可以借助Go語言實現(xiàn)自動化的增量備份。本篇文章將簡單介紹如何使用Go語言進行MySQL數(shù)據(jù)庫的數(shù)據(jù)增量備份。一、安裝Go語言環(huán)境首先,我們需要在本地安裝Go語言環(huán)境??梢郧巴倬W下載相應的安裝包并進行安裝。二、安裝相應的庫Go語言提供了許多訪問MySQL數(shù)據(jù)庫的第三方庫,其中較為常用的

如何使用Go語言進行可靠的MySQL數(shù)據(jù)庫連接? 如何使用Go語言進行可靠的MySQL數(shù)據(jù)庫連接? Jun 17, 2023 pm 07:18 PM

隨著大量的數(shù)據(jù)需要存儲和處理,MySQL已經成為了應用開發(fā)中最常用的關系型數(shù)據(jù)庫之一。而Go語言由于其高效并發(fā)處理和簡潔的語法,也越來越受到開發(fā)者的歡迎。本文就將帶領讀者通過Go語言實現(xiàn)可靠的MySQL數(shù)據(jù)庫連接,讓開發(fā)者能夠更加高效地查詢和存儲數(shù)據(jù)。一、Go語言連接MySQL數(shù)據(jù)庫的幾種方式Go語言中連接MySQL數(shù)據(jù)庫通常有3種方式,分別是:1.第三方庫

See all articles