PHP學習筆記之MySQL(十)

編程接口

從PHP5開始,PHP向程序員提供了兩種MySQL應用程序編程接口:一種是從PHP早期版本一 直就有的mysql功能模塊;另一種是從PHP5纔開始有的mysqli接口;

mysql功能模塊不是PHP的一個集成組件。要想使用這個功能擴展模塊,不管使用是哪一種操作系統,都必須在php.ini文件裏啓用這個擴展以確保PHP能夠找到所有必要的DLL "php_mysqli"。

phpinfo()查看php.ini設置,包括路徑

數據庫操作一般步驟

  1. MySQL建立連接與選擇要操作的數據庫
  2. 進行增刪改查操作
  3. 關閉連接

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 "刪除失敗";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章