一、鏈接數據庫
使用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
, orMYSQLI_BOTH
時分別返回一個關聯數組、索引數組或二者混合成一個數組一塊兒返回
- mixed mysqli_result::fetch_all ([ int
- 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對象裏獲取受影響行數等信息