$sql = "UPDATE user SET u_name=$name,u_phone=$phone,u_email=$email WHERE id='$UID'";
字符串字段 $name、$phone、$email 未加單引號,導致 SQL 語法錯誤,但 mysqli_query 返回 false 卻未觸發彈出錯誤信息。
$sql = "UPDATE user SET u_name='$name', u_phone='$phone', u_email='$email' WHERE id='$UID'";
$stmt = $conn->prepare("UPDATE user SET u_name=?, u_phone=?, u_email=? WHERE id=?");
$stmt->bind_param("sssi", $name, $phone, $email, $UID);
if ($stmt->execute()) {
echo "修改成功";
} else {
echo "修改失敗: " . $stmt->error;
}
$stmt->close();
$pdo = new PDO("mysql:host=localhost;dbname=records", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("UPDATE user SET u_name=?, u_phone=?, u_email=? WHERE id=?");
$stmt->execute([$name, $phone, $email, $UID]);
mysqli_query 失敗返回 false,但代碼只判斷 if (mysqli_query(...)),未打印 mysqli_error($conn)。mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 讓錯誤直接拋出異常。$UID 是否正確獲取($_GET['ID'] vs $_POST['ID'])。id 類型是否為整數,WHERE id='$UID' 隱式轉換可能導致索引失效。