PHP 7.2.0 Release Candidate 4 Released

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7)

mysqli_stmt::$param_count -- mysqli_stmt_param_count指定したステートメントのパラメータ数を返す

説明

オブジェクト指向型

手続き型

int mysqli_stmt_param_count ( mysqli_stmt $stmt )

プリペアドステートメント内のパラメータマーカの数を返します。

パラメータ

stmt

手続き型のみ: mysqli_stmt_init() が返すステートメント ID。

返り値

パラメータの数を整数で返します。

例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.

参考

  • mysqli_prepare() - 実行するための SQL ステートメントを準備する

add a note add a note

User Contributed Notes 1 note

up
1
Senthryl
8 years ago
This parameter (and presumably any other parameter in mysqli_stmt) will raise an error with the message "Property access is not allowed yet" if the statement was not prepared properly, or not prepared at all.

To prevent this, always ensure that the return value of the "prepare" statement is true before accessing these properties.
To Top