鏈接數據庫
在php5.3版本之后,想要連接數據庫有兩種方案,一種是通過mysqli
,另外外一種是通過pdo
。
本文主要說的是如果通過mysqli
面向對象的寫法操作數據庫。
在連接數據庫之前,需要先通過變量存儲好數據庫的基本連接信息。
$servername = "localhost"; // 地址 $username = "root"; // 用戶名 $password = ""; // 密碼
實例化對象,並傳入先關參數
$link = new mysqli($servername,$username,$password);
判斷鏈接是否成功
// 檢測連接是否成功 if($link->connect_error){ //如果沒有錯誤,會返回一個NULL die("連接失敗,錯誤:" . $link->connect_error); //打印錯誤信息 }
鏈接之后,斷開連接關閉數據庫
$link->close();
完整demo:

<?php // php 連接Mysql // 通過mysqli // 采用面向對象的寫法來完成數據庫的連接 // 設置基礎數據庫信息 $servername = "localhost"; $username = "root"; $password = ""; // 創建連接 $link= new mysqli($servername,$username,$password); // 檢測連接是否成功 if($link->connect_error){ die("連接失敗,錯誤:" . $link->connect_error); } // 否則連接成功 echo "連接成功!"; // 連接之后,還需要將連接關閉 $link->close(); ?>
通過mysqli創建數據庫
通過mysqli創建數據庫,首先我們需要保證數據庫的成功連接。
$servername = "localhost"; $username = "root"; $password = ""; // 創建連接 $link= new mysqli($servername,$username,$password); //檢測是否成功 if($link->connect_error){ die("連接失敗,錯誤:" . $link->connect_error); }
接下來通過變量保存好sql語句。
// 設置sql語句 $sql = "create database stu_01 default character set = 'utf8' ";
檢測數據庫是否創建成功
// 發送sql語句 並且驗證是否創建成功 if($link->query($sql) === TRUE){ echo "數據庫創建成功."; }else { echo "數據庫創建失敗 ,錯誤信息為:" . $link->error; // 如果失敗輸出錯誤信息 }
斷開連接,關閉數據庫
// 關閉數據庫 $conn->close();
添加數據庫完整demo

<?php $servername = "localhost"; $username = "root"; $password = ""; // 創建連接 $link= new mysqli($servername,$username,$password); if($link->connect_error){ die("連接失敗,錯誤:" . $link->connect_error); } // 設置sql語句 $sql = "create database stu_01 default character set = 'utf8' "; // 發送sql語句 並且驗證是否創建成功 if($link->query($sql) === TRUE){ echo "數據庫創建成功."; }else { echo "數據庫創建失敗 ,錯誤信息為:" . $link->error; // 如果失敗輸出錯誤信息 } // 關閉數據庫 $conn->close(); ?>
通過mysqli 創建數據表
通過mysqli
創建數據表,首先我們先來完成基本的數據庫連接操作,
需要注意的是,因為我們是在數據庫中創建一個數據表,所以需要在額外的配置一下數據庫的信息:
$servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_01"; // 要操作的數據庫名 // 創建連接 $link= new mysqli($servername,$username,$password,$dbname); // 注意第四個參數 if($link->connect_error){ die("連接失敗,錯誤:" . $link->connect_error); }
設定創建數據表的sql語句
create table stu_info( id int(6) unsigned auto_increment primary key, firstname varchar(30) not null, lastname varchar(30) not null, email varchar(50), reg_date timestamp ) /* NOT NULL - 每一行都必須含有值(不能為空),null 值是不允許的。 DEFAULT value - 設置默認值 UNSIGNED - 使用無符號數值類型,0 及正數 AUTO INCREMENT - 設置 MySQL 字段的值在新增記錄時每次自動增長 1 PRIMARY KEY - 設置數據表中每條記錄的唯一標識。
通常列的 PRIMARY KEY 設置為 ID 數值,與 AUTO_INCREMENT 一起使用。
注意:每個表都應該有一個主鍵(本列為 "id" 列),主鍵必須包含唯一的值。 */
通過mysqli向數據表中插入信息
首先,連接數據庫
$servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_01"; // 創建連接 $conn = new mysqli($servername,$username,$password,$dbname); if($conn->connect_error){ die("連接失敗,錯誤:" . $conn->connect_error); }
接下來設置sql語句:
// 設置插入數據的sql語句 $sql = "insert into stu_info(firstname,lastname,email) values('張三','張小三','zhangsan@qq.com')";
發送sql語句
// 發送sql 語句 if($conn->query($sql) === TRUE){ echo "新記錄添加成功!"; }else { echo "新記錄添加失敗,錯誤信息:" . $conn->error; } // 關閉連接 $conn->close();
通過mysqli刪除數據
<?php // 數據庫連接基本信息 header("Content-type:text/html;Charset=utf8"); $servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_02"; $conn = new mysqli($servername,$username,$password,$dbname); mysqli_set_charset($conn,'utf8'); // 解決亂碼問題 // 檢查鏈接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // 設置sql $sql = "delete from stu_info where lastname = '李小思';"; // 發送sql if($conn->query($sql) === TRUE) { echo "刪除成功"; }else { echo "刪除失敗,錯誤信息為:" . $conn->connect_error; } $conn->close();
通過mysqli 更改數據
<?php // 數據庫連接基本信息 header("Content-type:text/html;Charset=utf8"); $servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_02"; $conn = new mysqli($servername,$username,$password,$dbname); mysqli_set_charset($conn,'utf8'); // 解決亂碼問題 // 檢查鏈接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // 設置sql語句 $sql = "update stu_info set firstname='張小三' where id = 3"; // 發送sql語句 if($conn->query($sql) === TRUE) { echo "修改成功"; }else { echo "修改失敗,錯誤信息:" . $conn->connect_error; } // 關閉 $conn->close();
通過mysqli 查找數據
<?php // 1.登錄mysql,選擇數據庫 $link = @new mysqli("localhost:3306","root","root","test1908"); if($link->connect_error){ echo $link->connect_error; } // 2.$link->query()向mysql發送命令 // 查 $q = "SELECT * FROM stu"; $res = $link->query($q); if($res){ // 每次執行只能解析一條數據 // 1.解析出了關聯數組和索引數組的集合 // while($arr = $res->fetch_array()){ // print_r($arr); // echo "<br>"; // } // 2.解析出了索引數組 // while($arr = $res->fetch_row()){ // print_r($arr); // echo "<br>"; // } // 3.解析出了關聯數組 √ while($arr = $res->fetch_assoc()){ print_r($arr); // echo json_encode($arr); echo $arr["sex"]; echo "<br>"; } // 4.解析出了對象 // while($obj = $res->fetch_object()){ // print_r($obj); // echo $obj->name; // echo "<br>"; // } // echo $arr["age"] }else{ echo "select no ok"; } // 斷開mysql之間的連接 $link->close(); ?>