鏈接數據庫的八大步驟
Step1:連接數據庫 mysqli_connect()
參數: ①主機地址
②mysql用戶名
③mysql密碼
④選擇鏈接的數據庫
⑤端口號
返回:若是鏈接成功,返回資源類型的標誌符號;若是鏈接失敗,返回false。
若是咱們與mysql創建的鏈接不僅一條,那麼之後操做數據庫的各類函數都必須傳入返回的鏈接符號;
若是咱們與mysql創建的鏈接只有一條,那麼之後操做數據庫的各類函數就沒必要傳入這個標識符號。
建議都傳入。
密碼爲空能夠省略密碼 $conn = mysqli_connect("localhost", "root");
$conn = mysqli_connect("localhost", "root", "", "mydb");
var_dump($conn);
Step2:檢測數據庫鏈接是否成功?
mysqli_connect_errno()與 mysqli_connect_error()
mysqli_connect_errno(); 返回上次鏈接數據庫錯誤的錯誤號,鏈接成功返回0
mysqli_connect_error(); 返回上次鏈接數據庫的錯誤信息
if(mysqli_connect_errno($conn)){
die("數據庫鏈接失敗!失敗信息:".mysqli_connect_error($conn));
}
前面兩步合併的寫法(Step1+Step2):鏈接數據庫同時判斷
$conn = mysqli_connect("localhost", "root", "", "mydb") or die("數據庫鏈接失敗!失敗信息:".mysqli_connect_error($conn));
Step3:選擇數據庫 mysqli_select_db($link,$dbname)
參數:①標識符 ②鏈接數據庫名稱
鏈接成功,返回true;鏈接失敗,返回false
若是修改數據庫成功,則資源標識符中的數據庫就會發生變更;
若是修改失敗而沒有經過代碼終止操做,則後續代碼能夠使用原數據庫繼續執行
mysqli_select_db($conn, "mydb") or die("數據庫選擇失敗!");
Step4:設置字符集編碼格式
mysqli_set_charset($link,$charset) 只能設置爲utf8而不能是utf-8
mysqli_set_charset($conn,"utf8") or die("數據庫編碼集設置失敗!");
Step5:編寫sql語句
$sql = "select * from tb1";
Step6:執行sql語句 mysqli_query($link,$sql)
若是是(DML)增、刪、改,將返回布爾類型是否成功
返回上一次操做時受影響的行數 mysqli_affected_rows($link)
若是是(DQL)查詢,將返回資源結果集
返回資源結果集中的行數 mysql_num_rows($result)
返回資源結果集中的字段數 mysql_num_fields($result)
若是查詢失敗,返回false
$res = mysqli_query($conn,$sql);
mysqli_insert_id($conn); 執行插入語句是返回上次插入最新插入的主鍵ID
Step7:解析結果集
var_dump(mysqli_fetch_array($res)); 處理結果集,返回關聯數組和索引數組 不經常使用
參數① 須要處理的結果集
參數② 返回哪一種數組格式
MYSQL_ASSOC - 關聯數組
MYSQL_NUM - 數字數組
MYSQL_BOTH - 默認。同時產生關聯和數字數組
echo "<table border='1' style='border-collapse:collapse;text-align:center;width:200px;'>";
echo "<thead bgcolor='lightblue' style='color:#ffffff;'><td>ID</td><td>姓名</td><td>年齡</td><td>性別</td></thead>";
while($row =mysqli_fetch_assoc($res)){ // 返回關聯數組 指針遍歷 經常使用
echo "<tr>";
foreach($row as $value){
echo "<td>{$value}</td>";
};
echo "</tr>";
}
echo "</table>";
mysqli_data_seek($res,0); 設置結果集指針位置,此式表達復位至0
var_dump(mysqli_fetch_object($res));
var_dump(mysqli_fetch_row($res)); 返回索引數組
var_dump(mysqli_fetch_object($res)); 返回對象
var_dump(mysqli_fetch_fields($res)); 返回結果集中每一列的字段信息
Step8:關閉資源與結果集 mysqli_free_result()和mysqli_close()
mysqli_free_result($res); //釋放查詢資源結果集
mysqli_close($conn); //關閉數據庫鏈接