mysqli

weixin_34320159發表於2017-11-22

一、mysql與mysqli的概念相關:

  1. mysql與mysqli都是php方面的函式集,與mysql資料庫關聯不大。

  2. 在php5版本之前,一般是用php的mysql函式去驅動mysql資料庫的,比如mysql_query()的函式,屬於程式導向3、在php5版本以後,增加了mysqli的函式功能,某種意義上講,它是mysql系統函式的增強版,更穩定更高效更安全,與mysql_query()對應的有mysqli_query(),屬於物件導向,用物件的方式操作驅動mysql資料庫

  3. mysql_connect()與mysqli_connect()

  • 使用mysqli,可以把資料庫名稱當作引數傳給mysqli_connect()函式,也可以傳遞給mysqli的建構函式;

  • 如果呼叫mysqli_query()或mysqli的物件查詢query()方法,則連線標識是必需的。

  1. mysql與mysqli的區別:
  • mysql是非持繼連線函式,mysql每次連結都會開啟一個連線的程式。

  • mysqli是永遠連線函式,mysqli多次執行mysqli將使用同一連線程式,從而減少了伺服器的開銷。mysqli封裝了諸如事務等一些高階操作,同時封裝了DB操作過程中的很多可用的方法。返回記錄集型別為array mysql_fetch_array ( resource $result [, int $ result_type ] )有一點很重要必須指出,用 mysql_fetch_array() 並不比用 mysql_fetch_row()慢,而且還提供了明顯更多的值。 mysql_fetch_array() 中可選的第二個引數 是一個常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。引數的預設值是 MYSQL_BOTH。如果用了 MYSQL_BOTH,將得到一個同時包含關聯和數字索引的陣列。用 MYSQL_ASSOC 只得到關聯索引(如同 mysql_fetch_assoc()那樣 mysql_fetch_assoc() 函式從結果集中取得一行作為關聯陣列。返回根據從結果集取得的行生成的關聯陣列,如果沒有更多行,則返回 false。),用 MYSQL_NUM 只得到數字索引[]。例如:

    $con = mysqli_connect("localhost","root","","mydb");    
    $select1 = "select * from mysql_table where age > 20";
    $re_select1 = mysqli_query($con, $select1);
    print_r($re_select1);
    $data = mysqli_fetch_all($re_select1,MYSQLI_ASSOC);
    print_r($data);
7426605-8f4c18c346afffdd.png
�結果

資料庫操作關鍵函式

* mysqli_connect: 連線資料庫
* mysqli_error: 最後一次SQL動作錯誤資訊
* mysql_errno(): 函式返回上一個 MySQL 操作中的錯誤資訊的數字編碼。
返回上一個 MySQL 函式的錯誤號碼,如果沒有出錯則返回 0(零)。
* mysqli_query: 執行SQL語句,增刪改查
* mysqli_select_db: 選擇資料庫
* mysqli_fetch_array(): 從查詢結果去1條查詢記錄
* mysqli_fetch_all(): 函式從結果集中取得所有行作為關聯陣列
* mysqli_close: 關閉資料庫

假設資料庫的名稱為mydb

連線資料庫

/**
*'localhost',  /* The host to connect to 連線MySQL地址 */     
*'root',      /* The user to connect as 連線MySQL使用者名稱 */     
*'password',  /* The password to use 連線MySQL密碼 */     
*'mydb');    /* The default database to query 連線資料庫名稱*/ 
/
$connect = mysqli_connect("localhost","root","","mydb");

建立資料表 person

    $create_table = "create table mysql_table(id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),name varchar(15),age int)";
    mysqli_query($con,$create_table);

插入資料

    $insert1 = "insert into mysql_table (`name`, `age`) values('yyy',90)";
    mysqli_query($con,$insert1);

查詢資料

    $select1 = "select * from mysql_table where age > 20";
    $re_select1 = mysqli_query($con, $select1);
    print_r($re_select1);

關閉資料

mysqli_close($con);

相關文章