如果语句没有正确准备,或者根本没有准备,此参数(以及可能 mysqli_stmt 中的任何其他参数)将引发带有消息“不允许属性访问”的错误。
为了防止这种情况,请始终确保在访问这些属性之前,“准备”语句的返回值为真。
(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("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {
$marker = $stmt->param_count;
printf("Statement has %d markers.\n", $marker);
/* 关闭语句 */
$stmt->close();
}
/* 关闭连接 */
$mysqli->close();
?>
示例 #2 过程式风格
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 检查连接 */
if (mysqli_connect_errno()) {
printf("Connect failed: %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("Statement has %d markers.\n", $marker);
/* 关闭语句 */
mysqli_stmt_close($stmt);
}
/* 关闭连接 */
mysqli_close($link);
?>
上面的示例将输出
Statement has 2 markers.