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.
mysqli_stmt::$param_count
mysqli_stmt_param_count
(PHP 5)
mysqli_stmt::$param_count -- mysqli_stmt_param_count — Devuelve el número de parámetros de la sentencia dada
Descripción
Estilo orientado a objetos
Estilo por procedimientos
Devuelve el número de marcadores de parámetros presentes en la sentencia preparada.
Parámetros
-
stmt -
Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().
Valores devueltos
Devuelve un valor integer que represetna el número de parámetros.
Ejemplos
Ejemplo #1 Estilo orientado a objetos
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($sentencia = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {
$marcador = $sentencia->param_count;
printf("La sentencia tiene %d marcadores.\n", $marcador);
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
Ejemplo #2 Estilo por procedimientos
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($sentencia = mysqli_prepare($enlace, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {
$marcador = mysqli_stmt_param_count($sentencia);
printf("La sentencia tiene %d marcadores.\n", $marcador);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
El resultado de los ejemplos serían:
La setencia tiene 2 marcadores.
Senthryl ¶
4 years ago
