首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP MySQLi 更新資料庫記錄基礎範例

     編輯:PHP 相關知識

展示使用 MySQLi 物件風格執行 INSERT 操作並檢查影響行數的最小可行代碼。注意:實際生產環境**必須使用預處理語句**防止 SQL 注入,此處僅示範 API 基礎用法。

基礎 INSERT 範例

<?php
// 假設 $mysqli 已成功連接:new mysqli('localhost', 'user', 'pass', 'db')

$query = "INSERT INTO chinachaodai (name, theindex) VALUES ('公司', '1')";
$result = $mysqli->query($query);

if ($result) {
    echo "返回行數: " . $mysqli->affected_rows; // 成功插入返回 1
} else {
    echo "失敗了: " . $mysqli->error; // 顯示具體錯誤訊息
}

$mysqli->close();
?>

關鍵屬性與方法說明

屬性/方法說明
$mysqli->query($sql)執行單條 SQL,成功返回 mysqli_result (SELECT) 或 true (INSERT/UPDATE/DELETE),失敗返回 false
$mysqli->affected_rows上一條 INSERT/UPDATE/DELETE/REPLACE 影響的行數
$mysqli->insert_id上一條 INSERT 自增 ID(若表有 AUTO_INCREMENT)
$mysqli->error最近一次函數調用的錯誤訊息字串
$mysqli->errno最近一次函數調用的錯誤代碼

⚠️ 生產環境必讀:預處理語句

<?php
// 正確姿勢:預處理 + 參數綁定,徹底防 SQL 注入
$stmt = $mysqli->prepare("INSERT INTO chinachaodai (name, theindex) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $index); // "s"=string, "i"=integer, "d"=double, "b"=blob

$name = '公司';
$index = '1';
$stmt->execute();

echo "影響行數: " . $stmt->affected_rows;
echo "新 ID: " . $stmt->insert_id;

$stmt->close();
?>

常見錯誤排查

  • affected_rows 返回 -1:SQL 語法錯誤或執行失敗,檢查 $mysqli->error。
  • Duplicate entry '...' for key 'PRIMARY':主鍵/唯一鍵衝突。
  • Field 'xxx' doesn't have a default value:非空欄位未提供值且無預設值(嚴格 SQL 模式下)。
  • 中文亂碼:確保連接字符集 $mysqli->set_charset('utf8mb4')、表/欄位字符集為 utf8mb4、PHP 檔案編碼為 UTF-8 無 BOM。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved