學習php語法--數據庫擴展(總結篇)


 

  前  言

 php 

 php中的數據庫擴展mysql語法--本篇學習都是通過使用數字天堂的HBuider開發環境,連接mysql數據.介紹php連接mysql數據庫的代碼與函數。

本篇學習主要有兩個部分:

  ①【面向過程】
  ②【面向對象】
 
內容大同小異:
        一、連接數據庫
        二、檢測數據庫連接是否成功--連接數據庫同時判斷
        三、選擇數據庫
        四、編寫SQL語句
        五、執行SQL語句--代碼執行之后,返回的結果集
        六、處理結果集的一些函數
        七、釋放查詢資源結果集
        八、關閉數據庫連接
        
          

以下所有代碼HBuider中建立PHP文件實施。

 

1、面向過程

① 連接數據庫 :
     連接數據庫 使用:mysqli_connect
          參數: ① 主機地址 ② mysql用戶名 ③ mysql密碼 ④ 選擇連接的數據庫 ⑤ 端口號
          返回: 如果連接成功,返回資源類型的表示符號
                   如果連接失敗,則返回false
        如果我們與MYSQL建立的鏈接不止一條,那么以后操作數據庫的各種函數都必須傳入返回的標識符號;
        如果我們與MYSQL建立的連接只有一條,那么以后操作數據庫的各種函數就不必傳入這個表示符號

  //$conn = mysqli_connect("xxx.0.0.x","root","","mydb");//密碼為零可以省略
       $conn = mysqli_connect("xxx.0.0.x","root","1");  這行代碼在所有代碼之前的必須存在。

圖片:


       圖 1.1 Navicat Premium中的mysql主機中的mydb數據庫
    

檢測數據庫連接是否成功
   mysqli_connect_errno():返回上次連接數據庫的錯誤號,連接成功返回0
        mysqli_connect_error():返回上次連接數據庫的錯誤信息
       代碼如下 ↓↓↓
  
       if(mysqli_connect_errno()){
        die("lalalala:".mysqli_connect_error());
    }
    var_dump($conn);

打印的效果圖片:


//連接數據庫同時判斷
    $conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ;

③  選擇數據庫:mysqli_select_db
  參數: ① 資源標識符 ② 選擇的數據庫名稱
       返回: 連接成功返回true,鏈接失敗返回false
     
       如果修改數據庫成功,則西苑標識符中的數據庫就會發生變更
       如果修改失敗,而沒有通過代碼終止操作,則后續代碼可以使用原數據庫繼續執行。
     代碼如下:
    //  ↓var_dump(mysqli_select_db($conn,"mydb1") or die("數據庫選擇失敗") )
    效果圖如下  ↓↓↓↓↓↓↓↓↓
    

      var_dump(mysqli_select_db($conn,"mydb") or die("數據庫選擇失敗"));      
    效果圖如下  ↓↓↓↓↓↓↓↓↓
    

④  編寫SQL語句
  
mysql語句中的增刪改查
  執行SQL語句

        如果是增、刪、改,將返回布爾型的是否成功;
        如果是查詢,返回資源結果集
        如果查詢失敗,返回false

圖片:↓↓↓↓↓↓↓↓↓

        圖片 1.2 數據庫mydb中的表tb1中的表格內容


代碼如下:
  //編寫SQL語句--查詢tb1表單中的所有數據
  $sql = "select * from tb1";

  //數據庫mydb中執行執行sql語句。變量$conn看上文選擇數據庫
  $set = mysqli_query($conn, $sql);
  var_dump($set);
效果圖:
  

        圖 1.3 $set返回的結果集

⑥  處理結果集的函數(一)
  ↓↓承接上文↓↓
  //DQL時:返回資源結果集中的行數
       var_dump(mysqli_num_rows($set));
效果圖:

        //DQL時:返回資源結果集中的字段(列)
        var_dump(mysqli_num_fields($set));
效果圖:
 
  處理結果集的函數(二) 
  處理結果集,返回關聯數組和索引數組
        mysqli_fetch_array()
        參數 ① :需要處理的結果集
        參數 ② :返回哪種數組格式
                    MYSQL_ASSOC   關聯
                    MYSQL_NUM        索引
                    MYSQL_BOTH        默認,同時產生兩種數組
代碼如下(承接上文):
    var_dump(mysqli_fetch_array($set));
效果圖:

   同時打印關聯數組和索引數組
代碼如下(承接上文):
    var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果圖:


 
 //下方代碼也返回關聯數組同上圖一樣↑
 
var_dump(mysqli_fetch_assoc($set));
代碼如下(承接上文):
    var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果圖:


 //下方代碼也返回索引數組同上圖一樣↑
 
var_dump(mysqli_fetch_row($set));

  處理結果集的函數(三)
  
//   結果集復位到最開始
  
// mysqli_data_seek($set,0)
代碼如下:
 
 //   結果集復位到最開始
  mysqli_data_seek($set,0);
  //打印表單第一組數據
    var_dump(mysqli_fetch_row($set));
  //打印表單第二組數據
    var_dump(mysqli_fetch_row($set));
    //釋放查詢資源結果集
  
 mysqli_free_result($set);
    //關閉數據庫鏈接
  
 mysqli_close($conn);
 
  1 <?php
  2     header("Content-type:text/html;charset=utf-8");
  3     
  4     /*連接數據庫 使用:mysqli_connect
  5         參數: ① 主機地址 ② mysql用戶名 ③ mysql密碼 ④ 選擇連接的數據庫 ⑤ 端口號
  6         返回: 如果連接成功,返回資源類型的表示符號
  7                  如果連接失敗,則返回false
  8      * 如果我們與MYSQL建立的鏈接不止一條,那么以后操作數據庫的各種函數都必須傳入返回的標識符號;
  9      * 如果我們與MYSQL建立的連接只有一條,那么以后操作數據庫的各種函數就不必傳入這個表示符號
 10      * 
 11      * 
 12     */
 13     $conn = mysqli_connect("127.0.0.1","root","","mydb");//密碼為零可以省略
 14     //$conn = mysqli_connect("127.0.0.1","root","1");
 15     
 16     /* 檢測數據庫連接是否成功
 17      * mysqli_connect_errno():返回上次連接數據庫的錯誤號,連接成功返回0
 18      * mysqli_connect_error():返回上次連接數據庫的錯誤信息
 19      * ↓↓↓ */
 20     
 21     if(mysqli_connect_errno()){
 22         die("lalalala:".mysqli_connect_error());
 23     }
 24       var_dump($conn);
 25 
 26     //連接數據庫同時判斷
 27     $conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ;
 28     
 29     
 30     
 31     /* 選擇數據庫mysqli_select_db
 32      * 參數: ① 資源標識符 ② 選擇的數據庫名稱
 33      * 返回: 連接成功返回true,鏈接失敗返回false
 34      * 
 35      * 如果修改數據庫成功,則西苑標識符中的數據庫就會發生變更
 36      * 如果修改失敗,而沒有通過代碼終止操作,則后續代碼可以使用原數據庫繼續執行。
 37      * */
 38     //var_dump(mysqli_select_db($conn,"mydb1") or die("數據庫選擇失敗") )
 39     
 40     var_dump(mysqli_select_db($conn,"mydb") or die("數據庫選擇失敗"));
 41     
 42     
 43     /*
 44      * 設置字符集編碼格式mysqli_set_charset()
 45      * 只能設置為utf8而不是utf-8
 46      * */
 47     mysqli_set_charset($conn,"utf8") or die("數據庫編碼集設置失敗");
 48     
 49     /* 編寫SQL語句
 50      * */
 51     $sql = "select * from tb1";
 52     /*<<<str
 53     INSERT INTO tb1 (username,age,sex) VALUES ("張三","122","女");
 54 str;
 55      * */
 56     /* 執行SQL語句
 57      * 如果是增、刪、改,將返回布爾型的是否成功;
 58      * 如果是查詢,返回資源結果集
 59      * 
 60      * 如果查詢失敗,返回false
 61      * */
 62     $set = mysqli_query($conn, $sql);
 63     
 64     //DML時,返回上一次操作時,受影響的行數
 65     //var_dump(mysqli_affected_rows($conn))
 66     
 67     //執行插入語句時,返回上次最新插入的主鍵ID
 68     //var_dump(mysqli_insert_id($conn));
 69     
 70     var_dump($set);
 71     
 72     //DQL時:返回資源結果集中的行數
 73     var_dump(mysqli_num_rows($set));
 74     //DQL時:返回資源結果集中的字段(列)
 75     var_dump(mysqli_num_fields($set));
 76     
 77     /* 處理結果集,返回關聯數組和索引數組
 78      * mysqli_fetch_array()
 79      * 參數 ① :需要處理的結果集
 80      * 參數 ② :返回哪種數組格式 
 81      *             MYSQL_ASSOC   關聯
 82      *             MYSQL_NUM        索引
 83      *             MYSQL_BOTH        默認,同時產生兩種數組
 84      * */ 
 85     
 86     var_dump(mysqli_fetch_array($set));
 87     var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
 88     var_dump(mysqli_fetch_array($set,MYSQL_NUM));
 89     
 90     
 91     //返回關聯數組
 92     var_dump(mysqli_fetch_assoc($set));
 93     //返回索引數組
 94     var_dump(mysqli_fetch_row($set));
 95     //返回對象
 96     var_dump(mysqli_fetch_object($set));
 97     var_dump(mysqli_fetch_object($set));
 98     
 99 
100     
101     /*    mysqli_data_seek($set,0)
102      *  結果集復位到最開始
103      * */
104     mysqli_data_seek($set,0);
105     var_dump(mysqli_fetch_row($set));
106     var_dump(mysqli_fetch_row($set));
107     
108     /*返回結果集每一列的字段信息。(字段名、表明、數據庫名、字段類型、長度等……)    */
109     //var_dump(mysqli_fetch_field($set));
110     
111     //釋放查詢資源結果集
112     mysqli_free_result($set);
113     
114     //關閉數據庫鏈接
115     mysqli_close($conn);
116     
117 ?>
面向過程

 

2、面向對象
   
① 連接數據庫
  
 $conn = @new mysqli("xxx.0.0.x","root","","mydb");
返回連接錯誤
 
$conn->connect_errno
返回連接信息
  $conn->connect_error
選擇數據庫
  $conn->select_db("mydb")
⑤ 設置字符集編碼
 
$conn->set_charset("utf8")
代碼如下:
 1     //連接數據庫
 2     $conn = @new mysqli("127.0.0.1","root","","mydb");
 3     
 4     //↓查看連接數據庫的返回內容
 5     // var_dump ($conn)
 6     
 7     if($conn->connect_errno){//返回連接錯誤號。
 8         //↓返回連接錯誤信息
 9         die("連接失敗".$conn->connect_error);
10     }
11         //↓選擇數據庫
12     $conn->select_db("mydb") or die("選擇數據庫失敗:".$conn->error); 
 //如果出現錯誤則在頁面打印如下:比如在沒有mydb1把上表中的mydb改為mydb1,在頁面就會出現如下樣式

        //↓設置字符集編碼
    $conn->set_charset("utf8")    or die("設置字符集失敗:".$conn->error);    //↑同上

 1 //准備sql語句
 2     $sql = <<<sql
 3     select * from tb1;
 4 sql;
 5     
 6     // 執行SQL語句,返回結果集或者布爾類型true/false
 7     $res = $conn->query($sql);
 8     var_dump($res);
 9     
10     // 返回結果集中的字段數
11     var_dump($res->field_count);
12     // 返回結果集中的總行數
13     var_dump($res->num_rows);
14     
15     // 返回關聯數組和索引數組
16     var_dump($res->fetch_array());
17     // 返回索引數組
18     var_dump($res->fetch_row());
19     // 返回關聯數組
20     var_dump($res->fetch_assoc());
21     // 返回一個對象
22     var_dump($res->fetch_object());
23     
24     // 將結果集指針移到指定位置
25     $res->data_seek(0);
26     
27     
28     // 返回結果集中的一個字段,並將指針移到下一列
29     var_dump($res->fetch_field());
30     // 直接返回結果集中的所有字段
31     var_dump($res->fetch_fields());
32     
33     
34     //釋放結果集資源
35     $res->close();// $res->free();
36     //關閉數據庫連接
37     $conn->close();
⑥⑦⑧⑨⑩

 

 

學習時候的筆記,可能會有一些錯誤的地方,歡迎各位的批評指點。

反思,復盤,每天收獲一點---------------------期待更好的自己

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM