首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

PHP 開發必備:10 個 MySQL 核心操作函數詳解與範例

     編輯:MySQL 綜合教學

資料庫連線與選擇

1. mysql_connect — 建立非持久連線

$link = mysql_connect('localhost', 'root', '') 
    or die('連線失敗: ' . mysql_error());

腳本結束自動關閉。注意: PHP 5.5.0 棄用,7.0.0 移除,建議改用 mysqli 或 PDO。

2. mysql_pconnect — 建立持久連線

$link = mysql_pconnect('localhost', 'root', '') 
    or die('連線失敗: ' . mysql_error());

連線不隨腳本結束關閉,下次請求可重用,減少握手開銷。同樣已棄用。

3. mysql_select_db — 選擇預設資料庫

mysql_select_db('example', $link) 
    or die('無法選擇資料庫: ' . mysql_error());

4. mysql_close — 關閉連線

mysql_close($link);

查詢執行與結果處理

5. mysql_query — 發送 SQL 語句

$result = mysql_query('SELECT * FROM users', $link);

回傳 resource(SELECT/SHOW/DESCRIBE/EXPLAIN)或 boolean(INSERT/UPDATE/DELETE/DDL)。

6. mysql_num_rows — 取得結果集行數

$num = mysql_num_rows($result);
echo "找到 {$num} 筆記錄";

僅適用 SELECT 結果集。INSERT/UPDATE/DELETE 影響行數請用 mysql_affected_rows。

7. mysql_affected_rows — 取得影響行數

mysql_query('DELETE FROM users WHERE id < 10');
echo "刪除了 " . mysql_affected_rows() . " 行";

必須緊接在對應 mysql_query 之後呼叫。

8. mysql_fetch_array — 取得一行為陣列

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    echo "id={$row[0]}, name={$row['name']}";
}

MYSQL_ASSOC 關聯索引、MYSQL_NUM 數字索引、MYSQL_BOTH 兩者皆有(預設)。

錯誤與資訊函數

9. mysql_error — 取得最後錯誤訊息

echo mysql_error($link);

10. mysql_insert_id — 取得最後 INSERT 產生的自增 ID

mysql_query("INSERT INTO users (name) VALUES ('kossu')");
echo "最後插入 ID: " . mysql_insert_id();

完整範例:簡易資料庫操作類雛形

class SimpleMySQL {
    private $link;
    public function __construct($host, $user, $pass, $db) {
        $this->link = mysql_connect($host, $user, $pass) or die(mysql_error());
        mysql_select_db($db, $this->link) or die(mysql_error());
        mysql_query("SET NAMES utf8", $this->link);
    }
    public function query($sql) {
        $res = mysql_query($sql, $this->link);
        if (!$res) die('SQL錯誤: ' . mysql_error($this->link) . ' [' . $sql . ']');
        return $res;
    }
    public function fetchAll($sql) {
        $res = $this->query($sql);
        $rows = [];
        while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) $rows[] = $row;
        return $rows;
    }
    public function insert($sql) {
        $this->query($sql);
        return mysql_insert_id($this->link);
    }
    public function __destruct() {
        if ($this->link) mysql_close($this->link);
    }
}

重要提醒: mysql_* 系列函數已從 PHP 7 移除,新專案請直接使用 PDO 或 mysqli(支援預處理語句、事務、物件導向介面),避免 SQL 注入與相容性問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved