編程接口
從PHP5開始,PHP向程序員提供了兩種MySQL應用程序編程接口:一種是從PHP早期版本一 直就有的mysql功能模塊;另一種是從PHP5纔開始有的mysqli接口;
mysql功能模塊不是PHP的一個集成組件。要想使用這個功能擴展模塊,不管使用是哪一種操作系統,都必須在php.ini文件裏啓用這個擴展以確保PHP能夠找到所有必要的DLL "php_mysqli"。
phpinfo()
查看php.ini設置,包括路徑
數據庫操作一般步驟
- MySQL建立連接與選擇要操作的數據庫
- 進行增刪改查操作
- 關閉連接
1.連接MySQL服務器
用mysqli_connect("端口","用戶名","密碼","連接的數據庫")
或者 new mysqli
方法連接數據庫
如果連接成功,這個函數將返回一個對象.否則將返回false,並向web服務器發送一條出錯消息,如果不想讓最終用戶在他們的web瀏覽器看到這樣的出錯消息,就必須在函數前面加上一個@字符.
設置獲取數據庫的數據編碼格式 $conn->query('set names utf8'); mysqli_query($conn,'set names utf8');
2.執行SQL語句
$result = mysqli_query($conn,$sql);
%result = $conn ->query ($sql);
3.獲取和顯示數據
fetch_row()
將以一個普通數組的形式返回一條結果,它的各個字段需要以$row[n]
的方式進行訪問
fetch_array()
將以一個關聯數組的形式返回一條結果,它的各個字段需要以$row[n]
或$row["colname"]
的方式進行訪問
fetch_assoc()
將以一個關聯數組的形式返回一條結果記錄,但它的各個字段只能以 $row["colname"]
的方式進行訪問。
fetch_object()
函數以一個對象的形式返回一條結果記錄, 它的各個字段需要以$row->colname
的方式進行訪問
這四個函數的共同點是:每次調用將自動返回下一條結果記錄,但如果已經到達結果數據表的末尾,則返回false;
mysqli_free_result(result)
提前釋放某次查詢結果
mysqli_num_rows($conn)
函數用於獲取查詢返回的記錄數
mysqli_insert_id($conn)
用於獲取INSERT操作產生的ID;
mysqli_affected_rows($conn)
函數用於獲取前一次mysql操作所影響的記錄數;
SELECT例子
<?php
header("Content-Type: text/html;charset=utf-8");
//連接數據庫
$con = mysqli_connect("localhost","root","","beautifulGirl");
//設置編碼格式
$conn->query("set names utf8");
//設置sql操作查詢ziliao表格中的所有數據
$sql = "SELECT * FROM ziliao";
//執行sql語句,將返回的數據存儲於變量result中
$result = $con->query($sql);
//創建表格填寫數據
echo '<table border=1>';
//以數組的方式返回數據
while($arr = $result->fech_assoc()){
echo "<tr>
<td>{$arr["id"]}</td>
<td>{$arr["name"]}</td>
<td>{$arr["age"]}</td>
</tr>";
}
?>
INSERT例子
<?php
//連接數據庫
$conn = @mysqli_connect("localhost","root","","beautifulGirl");
if(!$conn){
die("連接失敗")
}
//設置編碼格式
$conn->query(set names utf8);
//設置sql語句添加一行name爲"劉亦菲",age爲"永遠20歲"的數據
$sql="INSERT INTO ziliao (name,age) VALUES ('劉亦菲','永遠20歲')";
//執行sql語句
$conn->query($sql);
//由操作改變的數據條目判斷是否添加成功
if(mysqli_affected_rows($conn)>0){
echo "添加成功".myquli_insert_id($conn);
}else{
echo "添加失敗";
}
?>
UPDATE例子
<?php
//連接數據庫
$conn = @mysqli_connect("localhost","root","","beautifulGirl")
if(!$conn){
die("連接失敗");
}
//設置編碼格斯
$conn->query("set names utf8");
//設置SQL語句
$sql = "UPDATE ziliao SET name = '小蒼' WHERE age = '30'";
//執行sql語句
$conn->query($sql);
//判斷是否修改成功
if(mysqli_affected_rows($conn)>0){
//修改成功則輸出改變的行數
if(mysqli_affected_rows($conn)>0){
echo "修改成功".mysqli_affected_rows($conn);
}else{
echo "修改失敗";
}
}
?>
DELETE 例子
$conn = @$mysqli_connect("localhost","root","","beautifulGirl");
$conn->query("set names utf8");
$sql = "UPDATE FROM zilao WHERE name = '小蒼'";
$conn->query($sql);
if(mysqli_affected_rows($conn)>0){
echo "刪除成功".mysqli_affected_rows($conn);
}else{
echo "刪除失敗";
}