PHP使用mysqli類庫操做mysql數據庫

一、鏈接數據庫

使用mysqli的構造方法實現數據庫鏈接:mysql

面向對象風格sql

mysqli::__construct ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
$host = '127.0.0.1';            //MySQL服務器地址
$username = 'root';                //用戶名
$passwd = 'chz';                //密碼
$dbname = 'demo';                //數據庫名稱
 $link = @new mysqli($host, $username, $passwd, $dbname); if ($link->connect_error) { die('Connect Error (' . $link->connect_errno . ') ' . $link->connect_error); }else{ echo 'Success... ' . $link->host_info . '<br>'; } $link->close();  //關閉數據庫鏈接

過程化風格數據庫

mysqli mysqli_connect ($host , $username, $passwd , $dbname , $port, $socket )
$link = @mysqli_connect($host, $username, $passwd, $dbname) or die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); echo 'Success... ' . mysqli_get_host_info($link) . '<br>'; mysqli_close($link);

mysqli::select_db -- mysqli_select_db — 選擇用於數據庫查詢的默認數據庫,可用於切換數據庫,也可用於替代mysqli_connect()第四個參數數組

//面向對象風格
$link->select_db($dbname) or die('數據庫選擇失敗!'); //過程化風格
mysqli_select_db($link, $dbname) or die('數據庫選擇失敗!');

二、執行SQL代碼

全部sql代碼都放在query函數中執行。服務器

面向對象風格socket

mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

過程化風格函數

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
$sql = "set names utf8"         //設置字符集
$res = $link->query($sql);           //面向對象風格
$res = mysqli_query($link,$sql);     //過程化風格

2.一、數據庫讀操做fetch

query函數讀成功會返回一個存儲結果的mysqli_result對象,失敗則返回falsethis

mysqli_result對象內容獲取:spa

  • mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
    • mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] ) 從結果集中獲取全部結果
    • $resulttype 取值爲MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH 時分別返回一個關聯數組、索引數組或二者混合成一個數組一塊兒返回
  • mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
  • mysqli_result::fetch_assoc — Fetch a result row as an associative array
  • mysqli_result::fetch_object — Returns the current row of a result set as an object
  • mysqli_result::fetch_row — Get a result row as an enumerated array

 

function sql_query($sql,$all = false){ $res = $this->link->query($sql); if(!$res){ die('查詢失敗!'); } if($all){  //獲取全部結果
        return $res->fetch_all(MYSQLI_ASSOC); }else{    //獲取一條結果
        return $res->fetch_assoc(); } }

以上函數都有對應的過程化風格,加上mysqli_前綴,且第一個參數是mysqli_result對象

此外也能夠經過foreach循環獲得結果,但這種作法彷佛不太受推薦

2.二、數據庫寫操做

query函數寫成功會返回true,失敗則返回false,此外能夠在mysqli對象裏獲取受影響行數等信息

 三、未完待續

相關文章
相關標籤/搜索