如果語句未正確準備或根本未準備,此參數(以及 mysqli_stmt 中的任何其他參數)將會引發錯誤,訊息為「目前不允許屬性存取」。
為了防止這種情況,請務必在存取這些屬性之前,確保「prepare」語句的返回值為 true。
(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$param_count -- mysqli_stmt_param_count — 傳回指定語句的參數數量
物件導向風格
程序式風格
回傳已準備好的語句中存在的參數標記數量。
回傳一個表示參數數量的整數。
範例 #1 物件導向風格
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* 檢查連線 */
if (mysqli_connect_errno()) {
printf("連線失敗: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {
$marker = $stmt->param_count;
printf("語句有 %d 個標記。\n", $marker);
/* 關閉語句 */
$stmt->close();
}
/* 關閉連線 */
$mysqli->close();
?>
範例 #2 程序式風格
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 檢查連線 */
if (mysqli_connect_errno()) {
printf("連線失敗: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {
$marker = mysqli_stmt_param_count($stmt);
printf("語句有 %d 個標記。\n", $marker);
/* 關閉語句 */
mysqli_stmt_close($stmt);
}
/* 關閉連線 */
mysqli_close($link);
?>
以上範例將輸出
Statement has 2 markers.