當前位置:
首頁 > 最新 > 系統學習PHP之mysqli 基礎篇

系統學習PHP之mysqli 基礎篇

PHP-MySQL 函數庫是 PHP 操作 MySQL 資料庫最原始的擴展庫,PHP-MySQLi 的 i 代表 Improvement ,相當於前者的增強版,也包含了相對進階的功能,另外本身也增加了安全性,比如可以大幅度減少 SQL 注入等問題的發生。

安裝(開啟擴展)

mysqli擴展默認並不會開啟,因此php.ini中php_mysqli.dll這個DLL 必須開啟。為此我們需要找到php.ini文件,並且需要確認刪除了[PHP_MYSQLI]部分中的extension=php_mysqli.dll一行行首的注釋符號(分號)。

檢驗是否開啟成功

#1 通過PHPInfo()函數

phpinfo();

#2 通過extension_loaded() 函數檢測

var_dump(extension_loaded("mysqli"));

#3 通過 (function_exists()檢測函數是否存在

var_dump(function_exists("mysqli_connect"));

#4 通過get_loaded_extensions() 函數得到當前已經開啟的擴展

print_r(get_loaded_extensions());

連接資料庫

#1建立到MySQL數據的連接並選擇資料庫

$mysqli=newmysqli("localhost","root","root");$mysqli->select_db("test");

#2 實例化mysqli對象之後實現連接

$mysqli=newmysqli();$mysqli->connect("127.0.0.1","root","root");

#3 建立連接的同時打開指定資料庫(常用)

$mysqli=@newmysqli("localhost","root","root","test");

檢測是否連接成功

if($mysqli->connect_errno){die("資料庫連接失敗,錯誤信息:".$mysqli->connect_error);}

$mysqli->connect_errno:得到連接產生的錯誤編號,$mysqli->connect_error:得到連接產生的錯誤信息

設置編碼格式

#1 通過函數設置

$mysqli->set_charset("utf8");

#2 通過查詢設置

$mysqli->query("set names utf8")

獲取MySQL信息

獲取當前字符集

獲取客戶端信息

獲取mysql主機信息

獲取伺服器信息

獲取伺服器版本

CURD之添加

編寫 SQL 語句:

$sql="INSERT user(username,password) VALUES("queen1","queen1"),("queen2","queen2"),("queen3","queen3"),("queen4","queen4")";

使用query方法查詢

$res=$mysqli->query($sql);

查詢成功可利用 insert_id 屬性得到上一插入操作產生的AUTO_INCREMENT的值

echo"恭喜您註冊成功,您是網站第".$mysqli->insert_id."位用戶

";

查詢失敗可利用 errno(錯誤編號)及error(錯誤信息)進行提示:

echo"ERROR ".$mysqli->errno.":".$mysqli->error;

CURD之更新

同樣編寫 SQL 語句:

$sql="UPDATE user SET age=age+10";

使用query方法查詢

$res=$mysqli->query($sql);

可利用 affected_rows 屬性查詢受影響數目

echo $mysqli->affected_rows."條記錄被更新";

查詢失敗可利用 errno(錯誤編號)及error(錯誤信息)進行提示:

echo"ERROR ".$mysqli->errno.":".$mysqli->error;

CURD之刪除數據

編寫 SQL 語句

$sql="DELETE FROM user WHERE id

使用query方法查詢

$res=$mysqli->query($sql);

注意:上面增刪改查詢返回結果均為 bool 類型,且均可使用 affected_rows 屬性查看受影響條數,其返回值有三種情況: 受影響的記錄條數 、SQL語句有問題則返回 -1,沒有受影響記錄的條數則返回 0

CURD之查詢

編寫 SQL 語句

$sql="SELECT id,username,age FROM user";

使用query方法查詢

$mysqli_result=$mysqli->query($sql);

查詢成功返回mysqli_result類,查詢失敗返回FALSE,我們可以根據mysqli_result類提供幾種的方法獲取數據;

#1 使用 fetch_all() 方法獲取結果集中的全部記錄,默認放回的是索引格式的二維數組;

$rows=$mysqli_result->fetch_all();

通過參數改變其返回值的類型:MYSQLI_NUM(索引)、MYSQLI_ASSOC(關聯)、MYSQLI_BOTH(兩者)

#2 使用 fetch_array()方法返回結果集中第一條數據,並且沒執行一次該方法,數組指針下移一位,如果後面沒有數據則返回NULL,所以利用此特性使用循環同樣能實現獲取全部數據

while($row=$mysqli_result->fetch_array()){$rows[]=$row;}

fetch_array()默認放回結果是索引及關聯數組,可通過傳遞參數改變其返回結果類型:MYSQLI_NUM(索引)、MYSQLI_ASSOC(關聯)、MYSQLI_BOTH(兩者)

#3 使用 fetch_assoc()方法或者 fetch_row() 方法可以獲得與 fetch_array()方法同樣的效果,也就說是

fetch_array(MYSQLI_ASSOC)===fetch_assoc();

fetch_array(MYSQLI_NUM)===fetch_row();

查詢結束之後,需要釋放結果集

$mysqli_result->free();

關閉資料庫

$mysqli->close();

THE END

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 通通生活史 的精彩文章:

TAG:通通生活史 |