Mysqli面向過程鏈接

Myslqi擴展php

鏈接數據庫模板html

<?phpmysql

/* Connect to a MySQL server  鏈接數據庫服務器 */web

$link = mysqli_connect(sql

    'localhost',  /* The host to connect to 鏈接MySQL地址 */數據庫

    'jian',      /* The user to connect as 鏈接MySQL用戶名 */數組

    '123456',  /* The password to use 鏈接MySQL密碼 */服務器

    'jian');    /* The default database to query 鏈接數據庫名稱*/socket

函數

if (!$link) {

    printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());

    exit;

}else

    echo '數據庫鏈接上了!';

/* Close the connection 關閉鏈接*/

mysqli_close($link);

?>

數據庫鏈接的天龍八步:

一、鏈接數據庫
鏈接:mysqli_connect

二、成功與否判斷
鏈接錯誤號:mysqli_connect_errno
鏈接錯誤信息:mysqli_connect_error
三、選擇數據庫
選擇庫:mysqli_select_db
執行錯誤號:mysqli_errno
執行錯誤信息:mysqli_error
四、設置字符集
mysqli_set_charset
五、準備SQL語句
說明:符合SQL語法的任意語句
六、執行SQL語句
執行:mysqli_query
七、處理數據
查詢時返回查詢到數據行數:mysqli_num_rows
數據操做是影響的行數:mysqli_affected_rows
mysqli_fetch_row:獲取一條數據的索引數組
mysqli_fetch_assoc:獲取一條數據的關聯數組
mysqli_fetch_array:獲取一條數據的指定數組,
mysqli_fetch_all:獲取結果集中的全部數據,
類型取決於第二個參數
第二個參數:MYSQLI_NUM(索引數組)
MYSQLI_ASSOC(關聯數組)
MYSQLI_BOTH(索引和關聯都有)
八、釋放資源、關閉鏈接
釋放資源:mysqli_free_result
關閉鏈接:mysqli_close

示例:
// 一、鏈接數據庫
$link = @mysqli_connect('localhost','root','123456');
// 二、成功與否判斷
if (!$link) {
exit('error('.mysqli_connect_errno().'):'.mysqli_connect_error());
//die 該函數是 exit() 函數的別名。
}
// 三、選擇數據庫
if (!mysqli_select_db($link,'test')) {
echo 'error('.mysqli_errno($link).'):'.mysqli_error($link);
mysqli_close($link);
die;
}
// 四、設置字符集
mysqli_set_charset($link,'utf8');

設置從數據庫服務器發送數據到數據庫服務器時使用的默認字符集。
// 五、準備SQL語句
$sql = 'select * from star where id > 100';
// 六、執行SQL語句
$result = mysqli_query($link,$sql);
if ($result && mysqli_num_rows($result)) {
// 七、處理數據
/
mysqli_fetch_row:獲取一條數據的索引數組
mysqli_fetch_assoc:獲取一條數據的關聯數組
mysqli_fetch_array:獲取一條數據的指定數組,
類型取決於第二個參數
mysqli_fetch_all:獲取結果集中的全部數據,
類型取決於第二個參數
第二個參數:MYSQLI_NUM(索引數組)
MYSQLI_ASSOC(關聯數組)
MYSQLI_BOTH(索引和關聯都有)
var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));
/
while ($row = mysqli_fetch_array($result,MYSQLI_NUM)) {
var_dump($row);
}
} else {

}
// 八、釋放資源、關閉鏈接
mysqli_free_result($result);
mysqli_close($link);

 

具體實現

 //鏈接數據庫操做
//鏈接數據庫,並經過$link保存連接
$link = mysqli_connect('localhost','root','','project5');

Mysqli_connect(主機名/IP,用戶名,密碼,數據庫名,端口號,socket通訊);

Mysqli_connect 函數有六個參數,當省略參數時自動使用php.ini中配置的默認值

當數據庫鏈接失敗時,mysqli_connect提示的錯誤信息並不友好。能夠經過下面的方式解決

$link = @mysqli_connect('localhost','root','','project5') or exit('數據庫鏈接失敗');

@用於屏蔽錯誤信息,or是比較運算符,只有當左邊表達式爲false時纔會執行右邊的表達式,‘exit’用於中止腳本,同時能夠輸出錯誤信息。

當須要詳細信息時,能夠經過mysqli_connect_error()函數獲取。

下面我用兩種方式打印保存的鏈接$link

echo "<pre>";
print_r($link);
var_dump($link);

 

 

在使用命令行工具操做數據庫時,須要使用SET NAMES 設置字符集

在PHP中也須要設置字符集

mysqli_set_charset() 函數規定當與數據庫服務器進行數據傳送時要使用的默認字符集。

mysqli_set_charset($link,'utf8'); //成功返回true失敗返回false

只有保持PHP腳本文件、web服務器返回的編碼、網頁的<meta>標記、PHP訪問Mysql使用的字符集集多統一時才能避免中文亂碼問題。

https://www.jb51.net/article/22501.htm(具體文檔)

php頁面爲utf編碼 
header("Content-type: text/html; charset=utf-8"); 

<meta charset="UTF-8">//網頁爲uft8編碼

設置查詢的數據爲utf8字符集(set names utf8同時設置客戶端字符集,鏈接層字符集和查詢結果(如結果集或錯誤消息)返回給客戶端的字符集)

mysqli_query($link,"set names utf8");//PHP訪問Mysql使用的字符集

mysqli_query() 函數執行某個針對數據庫的查詢

mysqli_set_charset和SET NAMES優劣分析(mysqli_set_charset除了作了」SET NAMES」之外, 還多作了一步)全部最好用mysqli_set_charset(詳情請看下面連接的文章http://www.laruence.com/2010/04/12/1396.html).

https://blog.csdn.net/zhangfeng1133/article/details/46777883

$link = @mysqli_connect('localhost','root','','project5') or exit('數據庫鏈接失敗');  //數據庫鏈接結果
mysqli_set_charset($link,'utf8'); //成功返回true失敗返回false
mysqli_query($link,'use news');       //選擇數據庫(SQL語句方式)
mysqli_query($link,'set names utf8');  //設置字符集(SQL語句方式)
//執行SQL語句,並獲取結果集
$result = myslqi_query($link,'show databases');
if(!$result){
    exit('執行失敗。錯誤信息:'.mysqli_error($link));
}
echo "<pre>";
print_r($result);
var_dump($result);

 

//處理結果集$result

mysql_num_rows($result)  從結果集中獲取數據記錄的個數

mysql_num_fields($result)  從結果集中獲取數據記錄列的個數

mysql_fetch_row()      該函數將一條結果記錄返回,並以一個普通索引數組的形式保存

mysql_fetch_assoc()     該函數將一條結果記錄返回,並以一個普通關聯數組形式保存

mysql_fetch_array()     默認同時以索引數組和關聯數組保存,三個參數MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH

mysql_fetch_object()    以一個對象的形式返回一條結果記錄,他的各個字段須要以對象的形式進行訪問

var_dump(mysqli_num_rows($result));(從結果集中獲取數據記錄的個數;結果以下)
H:\wamp\www\test\test.php:48:int 6  

 

var_dump(mysqli_fetch_all($result)); //獲取全部結果,並以數組方式返回
print_r(mysqli_fetch_all($result));  //這種方式看的比較直觀

 

 

 

 

 

 

 

 

 

總結:

var_dump(mysqli_fetch_array($result));
var_dump(mysqli_fetch_assoc($result));
var_dump(mysqli_fetch_row($result));

 

 

 

 

從結果集中獲取數據記錄的個數

相關文章
相關標籤/搜索