首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP 操作 MySQL 必知細節:分號處理、資料型別、通配符、NULL 處理陷阱

     編輯:MySQL 資料庫相關知識

1. 分號 ; 在 PHP 中的處理

  • MySQL 命令列需以分號結束
  • 嵌入 PHP 字串時請省略分號:mysql_query("INSERT ... VALUES('$a','$b')")
  • 原因:PHP 同樣用分號結束陳述式,殘留分號會干擾解析器
  • 垂直顯示結果技巧:SELECT * FROM table \G (僅命令列工具支援)

2. 三大易混淆資料型別

型別正確認知
TEXT非獨立型別,實為 LONG VARCHAR 或 MEDIUMTEXT 別名
DATE格式 YYYY-MM-DD,PHP 取得:date("Y-m-d"),支援減法得天數差
SET可存多值 (位元組合),最多 64 個預定值;ENUM 單值但可 65535 個預定值

3. 通配符完整對照

符號用途範例
*SELECT 欄位清單:所有欄位SELECT * FROM t
%LIKE 模式:任意長度字串 (需搭配 LIKE)WHERE name LIKE '王%'
_LIKE 模式:單一任意字元WHERE code LIKE 'A__'

4. NOT NULL 與空值/NULL 的陷阱

  • 未填欄位預設寫入 NULL
  • NOT NULL 限制:
    • 一般欄位 → 拒絕寫入
    • ENUM 欄位 → 自動填入第 1 個枚舉值
  • 關鍵差異:% 可比對空字串,但無法比對 NULL

安全查詢模式

if (!$city) $city = "%";
$sql = "SELECT * FROM users 
        WHERE name='王小明' 
        AND (city LIKE '$city' OR city IS NULL)";
  • 搜尋 NULL 必須用 IS NULL,LIKE 無效
  • ALTER TABLE 新增欄位時,舊列值可能是 NULL 或空字串 (MySQL 版本差異),查詢需同時處理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved