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() 函數執行某個針對數據庫的查詢
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));
從結果集中獲取數據記錄的個數