Académique Documents
Professionnel Documents
Culture Documents
2
mysqli::$error_list — Devuelve una lista de errores desde el último
comando ejecutado
mysqli::$error — Devuelve una cadena que describe el último
error
mysqli::$field_count — Devuelve el número de columnas para la
consulta más reciente
mysqli::get_charset — Devuelve un objeto que contiene el
conjunto de caracteres
mysqli::get_client_info — Obtiene información de la biblioteca
cliente de MySQL
mysqli_get_client_version — Devuelve la versión clientes de
MySQL como valor de tipo integer
mysqli::get_connection_stats — Devuelve estadísticas sobre la
conexión del cliente
mysqli::$host_info — Devuelve una cadena que representa el tipo
de conexión usada
mysqli::$protocol_version — Devuelve la versión del protocolo
MySQL utilizada
mysqli::$server_info — Devuelve la versión del servidor MySQL
mysqli::$server_version — Devuelve la versión del servidor
MySQL como un valor entero
mysqli::get_warnings — Obtiene el resultado de SHOW
WARNINGS
mysqli::$info — Obtiene la información de la última consulta
ejecutada
mysqli::init — Inicializa y devuelve un recurso para utilizarlo con
mysqli_real_connect()
mysqli::$insert_id — Devuelve el id autogenerado que se utilizó
en la última consulta
mysqli::kill — Pide al servidor poner fin a un hilo de MySQL
mysqli::more_results — Comprueba si hay más resultados de una
multi consulta
mysqli::multi_query — Realiza una consulta a la base de datos
mysqli::next_result — Prepara el siguiente resultado de
multi_query
mysqli::options — Establecer opciones
mysqli::ping — Comprueba la conexión al servidor, o trata de
reconectar si se perdió la conexión
mysqli::poll — Almacena en caché conexiones
mysqli::prepare — Prepara una sentencia SQL para su ejecución
mysqli::query — Realiza una consulta a la base de datos
mysqli::real_connect — Abre una conexión a un servidor mysql
mysqli::real_escape_string — Escapa los caracteres especiales
de una cadena para usarla en una sentencia SQL, tomando en
cuenta el conjunto de caracteres actual de la conexión
mysqli::real_query — Ejecuta una consulta SQL
mysqli::reap_async_query — Obtener el resultado de una
consulta asincrónica
mysqli::refresh — Refresca
3
mysqli::release_savepoint — Elimina el punto salvado con
nombre del conjunto de puntos salvados de la transacción actual
mysqli::rollback — Revierte la transacción actual
mysqli::rpl_query_type — Devuelve un tipo de consulta RPL
mysqli::savepoint — Define el nombre de un punto de
salvaguarda de la transacción
mysqli::select_db — Selecciona la base de datos por defecto para
realizar las consultas
mysqli::send_query — Enviar una consulta y devolver
mysqli::set_charset — Establece el conjunto de caracteres
predeterminado del cliente
mysqli::set_local_infile_default — Desestablece el gestor definido
por el usuario para un comando load local infile
mysqli::set_local_infile_handler — Establecer la llamada de
retorno para el comando LOAD DATA LOCAL INFILE
mysqli::$sqlstate — Devuelve el error SQLSTATE de la operación
de MySQL previa
mysqli::ssl_set — Usada para establece conexiones seguras
usando SSL
mysqli::stat — Obtiene el estado actual del sistema
mysqli::stmt_init — Inicializa una sentencia y devuelve un objeto
para usarlo con mysqli_stmt_prepare
mysqli::store_result — Transfiere un conjunto de resultados de la
última consulta
mysqli::$thread_id — Deveulve el ID del hilo de la conexión actual
mysqli::thread_safe — Devuelve si la seguridad a nivel de hilos
está dada o no
mysqli::use_result — Inicia la recuperación de un conjunto de
resultados
mysqli::$warning_count — Devuelve el número de mensajes de
advertencia de la última consulta para un enlace dado
mysqli_stmt — La clase mysqli_stmt
mysqli_stmt::$affected_rows — Devuelve el número total de filas
cambiadas, borradas, o insertadas por la última sentencia
ejecutada
mysqli_stmt::attr_get — Se utiliza para obtener el valor actual de
un atributo de la sentencia
mysqli_stmt::attr_set — Se utiliza para modificar el
comportamiento de una sentencia preparada
mysqli_stmt::bind_param — Agrega variables a una sentencia
preparada como parámetros
mysqli_stmt::bind_result — Vincula variables a una sentencia
preparada para el almacenamiento de resultados
mysqli_stmt::close — Cierra una sentencia preparada
mysqli_stmt::__construct — Construye un nuevo objeto
mysqli_stmt
mysqli_stmt::data_seek — Busca una fila arbitraria en un conjunto
de resultados de una sentencia
mysqli_stmt::$errno — Devuelve el código de error de la llamada
de la sentencia más reciente
4
mysqli_stmt::$error_list — Devuelve una lista de errores de la
última sentencia ejecutada
mysqli_stmt::$error — Devuelve una descripción en forma de
string del último error de una sentencia
mysqli_stmt::execute — Ejecuta una consulta preparada
mysqli_stmt::fetch — Obtiene los resultados de una sentencia
preparadas en las variables vinculadas
mysqli_stmt::$field_count — Devuelve el número de campos de la
sentencia dada
mysqli_stmt::free_result — Libera la memoria de los resultados
almacenados del gestor de sentencia dado
mysqli_stmt::get_result — Obtiene un conjunto de resultados de
una sentencia preparada
mysqli_stmt::get_warnings — Obtener los resultados de SHOW
WARNINGS
mysqli_stmt::$insert_id — Obtener el ID generado en la operación
INSERT anterior
mysqli_stmt::more_results — Comprobar si existen más
resultados de una consulta de consultas múltiples
mysqli_stmt::next_result — Lee el siguiente resultado de una
consulta múltiple
mysqli_stmt::$num_rows — Devuelve el número de filas de un
conjunto de resultados de una sentencia
mysqli_stmt::$param_count — Devuelve el número de parámetros
de la sentencia dada
mysqli_stmt::prepare — Preparar una sentencia SQL para su
ejecución
mysqli_stmt::reset — Reinicia una sentencia preparada
mysqli_stmt::result_metadata — Devuelve los metadatos del
conjunto de resultados de una sentencia preparada
mysqli_stmt::send_long_data — Enviar datos en bloques
mysqli_stmt::$sqlstate — Devuelve el error SQLSTATE de la
operación de sentencia previa
mysqli_stmt::store_result — Transfiere un conjunto de resultados
desde una sentencia preparada
mysqli_result — La clase mysqli_result
mysqli_result::$current_field — Obtener posición del campo actual
de un puntero a un resultado
mysqli_result::data_seek — Ajustar el puntero de resultado a una
fila arbitraria del resultado
mysqli_result::fetch_all — Obtener todas las filas en un array
asociativo, numérico, o en ambos
mysqli_result::fetch_array — Obtiene una fila de resultados como
un array asociativo, numérico, o ambos
mysqli_result::fetch_assoc — Obtener una fila de resultado como
un array asociativo
mysqli_result::fetch_field_direct — Obtener los metadatos de un
único campo
mysqli_result::fetch_field — Retorna el próximo campo del
resultset
5
mysqli_result::fetch_fields — Devuelve un array de objetos que
representan los campos de un conjunto de resultados
mysqli_result::fetch_object — Devuelve la fila actual de un
conjunto de resultados como un objeto
mysqli_result::fetch_row — Obtener una fila de resultados como
un array enumerado
mysqli_result::$field_count — Obtiene el número de campos de
un resultado
mysqli_result::field_seek — Establecer el puntero del resultado al
índice del campo especificado
mysqli_result::free — Libera la memoria asociada a un resultado
mysqli_result::$lengths — Retorna los largos de las columnas de
la fila actual en el resultset
mysqli_result::$num_rows — Obtiene el número de filas de un
resultado
mysqli_driver — La clase mysqli_driver
mysqli_driver::embedded_server_end — Detener el servidor
incrustado
mysqli_driver::embedded_server_start — Inicializa e inicia el
servidor embebido
mysqli_driver::$report_mode — Habilita o desabilita las funciones
internas de notificación
mysqli_warning — La clase mysqli_warning
mysqli_warning::__construct — El propósito __construct
mysqli_warning::next — El propósito next
mysqli_sql_exception — La clase mysqli_sql_exception
Alias y Funciones de MySQLi obsoletos
mysqli_bind_param — Alias de mysqli_stmt_bind_param
mysqli_bind_result — Alias de mysqli_stmt_bind_result
mysqli_client_encoding — Alias de mysqli_character_set_name
mysqli_connect — Alias de mysqli::__construct
mysqli_disable_reads_from_master — Deshabilita las lecturas
desde el maestro
mysqli_disable_rpl_parse — Deshabilita el interprete RPL
mysqli_enable_reads_from_master — Activa las lecturas desde el
maestro
mysqli_enable_rpl_parse — Habilita el interprete RPL
mysqli_escape_string — Alias de mysqli_real_escape_string
mysqli_execute — Alias para mysqli_stmt_execute
mysqli_fetch — Alias de mysqli_stmt_fetch
mysqli_get_cache_stats — Devuelve las estadísticas de la caché
de Zval del cliente
mysqli_get_client_stats — Returns client per-process statistics
mysqli_get_links_stats — Devolver información sobre enlaces
abiertos y almacenados en caché
mysqli_get_metadata — Alias de mysqli_stmt_result_metadata
mysqli_master_query — Fuerza la ejecución de una cosulta en un
maestro en una configuración maestro/esclavo
mysqli_param_count — Alias de mysqli_stmt_param_count
mysqli_report — Alias de mysqli_driver->report_mode
6
mysqli_rpl_parse_enabled — Verifica si está habilitado el
interprete RPL
mysqli_rpl_probe — Exploración RPL
mysqli_send_long_data — Alias de mysqli_stmt_send_long_data
mysqli::set_opt — Alias de mysqli_options
mysqli_slave_query — Fuerza la ejecución de una cosulta en un
esclavo en una configuración maestro/esclavo
7
Introducción
La extensión mysqli (mysql improved) permite acceder a la funcionalidad
proporcionada por MySQL 4.1 y posterior. Se puede encontrar más información
sobre el servidor de base de datos MySQL en » http://www.mysql.com/
Los ejemplos emplean las bases de datos » world o » sakila, las cuales están a
libre disposición.
8
Información general ¶
Esta sección proporciona una introducción de las opciones disponibles a la
hora de desarrollar una aplicación PHP que necesite interactuar con una base
de datos MySQL.
Las APIs pueden ser procedimentales u orientadas a objetos. Con una API
procedimental invocan funciones para llevar a cabo las tareas, mientras con
con una API orientada a objetos se instancian clases, y entonces se invocan a
métodos de los objetos creados. Entre ambas opciones, la segunda es
generalmente la vía recomendada, puesto que está más actualizada y conlleva
una mejor organización de código.
¿Qué es un Conector?
¿Qué es un Driver?
9
A modo de ejemplo, la capa de abstracción de bases de datos Objetos de
Datos de PHP (PDO) utilizará alguno de los drivers para bases de datos
disponibles. Uno de ellos es el driver PDO MYSQL, que permite comunicarse
con un servidor MySQL.
La extensión del driver PDO MySQL, por ejemplo, no proporciona ninguna API
al programador PHP, pero en su lugar ofrece una interfaz a la capa de PDO
que tiene por encima.
No deben confundirse los términos API y extensión, dado que una extensión no
debe necesariamente proporcionar una API al programador.
¿Cuáles son las principales APIs que PHP ofrece para utilizar MySQL?
10
Nota:
Si se utiliza una versión de MySQL 4.1.3 o posterior, se
recomienda encarecidamente utilizar la extensión mysqli en su lugar.
Nota:
Si utiliza MySQL versión 4.1.3 o superior, se
recomienda encarecidamente utilizar esta extensión.
¿Qué es PDO?
Los Objetos de Datos de PHP, o PDO, son una capa de abstracción de bases
de datos específicas para aplicaciones PHP. PDO ofrece una API homogénea
para las aplicaciones PHP, independientemente del tipo de servidor de bases
de datos con el que se vaya a conectar la aplicación. En teoría, si se utiliza la
API PDO, se podría cambiar el servidor de bases de datos en uso, por ejemplo
de Firebird a MySQL, y sólo se necesitarían algunos cambios menores en el
código PHP.
11
A pesar de que PDO tiene sus ventajas, tales como una API limpia, sencilla y
portable, su mayor inconveniente es que no permite utilizar todas las
funcionalidades avanzadas en la última versión del servidor MySQL. Por
ejemplo, PDO no permite hacer uso de las Declaraciones Múltiples de MySQL.
El driver PDO MYSQL no es una API en sí, al menos desde el punto de vista
del programador de PHP. En realidad, el driver PDO MYSQL se encuentra una
capa por debajo del propio PDO, y ofrece funcionalidades específicas de
MySQL. Si bien el programador realiza las llamadas a la API de PDO, PDO
utiliza el driver PDO MYSQL para llevara a cabo la comunicación con el
servidor MySQL.
El driver PDO MYSQL es uno de los muchos drivers PDO disponibles. Otros de
los drivers disponibles son los de los servidores de bases de datos Firebird y
PostgreSQL.
Para más información sobre el driver PDO MYSQL, revise MySQL (PDO).
Tanto la extensión mysql, como mysqli, y el driver PDO MYSQL, utilizan para
llevar a cabo las comunicaciones con el servidor de bases de datos MySQL
una biblioteca de bajo nivel que genera el protocolo necesario. Hace un tiempo,
la única biblioteca disponible era libmysqlclient.
Nota:
12
El Controlador Nativo de MySQL sólo puede usarse con servidores de MySQL
versiones 4.1.3 y posteriores.
Comparación de Funcionalidades
13
Guía rápida ¶
Tabla de contenidos ¶
Esta guía rápida le ayudará a elegir y obtener familiaridad con la API MySQL
de PHP.
14
Interfaz dual: procedimental y orientada a objetos ¶
Los usuarios que migren desde la extensión mysql antigua pueden preferir la
interfaz procedimental. Esta interfaz es similar a la de la extensión antigua de
mysql. En la mayoría de los casos, los nombres de funciones difieren
únicamente por el prefijo. Algunas funciones de mysqli toman como primer
argumento un gestor de conexión, mientras que las funciones similares de la
antigua interfaz de mysql lo toman como el último argumento opcional.
<?php
$mysqli = mysqli_connect("ejemplo.com", "usuario", "contraseña", "base
datos");
$resultado = mysqli_query($mysqli, "SELECT 'Por favor, no use ' AS _ms
g FROM DUAL");
$fila = mysqli_fetch_assoc($resultado);
echo $fila['_msg'];
<?php
$mysqli = mysqli_connect("ejemplo.com", "usuario", "contraseña", "base
datos");
if (mysqli_connect_errno($mysqli)) {
echo "Fallo al conectar a MySQL: " . mysqli_connect_error();
}
15
$resultado = mysqli_query($mysqli, "SELECT 'Un mundo lleno de ' AS _ms
g FROM DUAL");
$fila = mysqli_fetch_assoc($resultado);
echo $fila['_msg'];
$resultado = $mysqli-
>query("SELECT 'elecciones para complacer a todos.' AS _msg FROM DUAL"
);
$fila = $resultado->fetch_assoc();
echo $fila['_msg'];
?>
Mezclar estilos
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Fallo al conectar a MySQL: " . $mysqli->connect_error;
}
if ($fila = $resultado->fetch_assoc()) {
echo $fila['_msg'];
}
?>
16
Véase también
mysqli::__construct()
mysqli::query()
mysqli_result::fetch_assoc()
$mysqli::connect_errno
$mysqli::connect_error
$mysqli::errno
$mysqli::error
El resumen de funciones de la extensión MySQLi
17
Conexiones ¶
El servidor MySQL soporta el uso de diferentes capas de transporte para
conexiones. Las conexiones usan TCP/IP, sockets de dominio Unix o tuberías
con nombre de Windows.
El nombre del host localhost tiene un significado especial. Está vinculado al uso
de sockets de dominio Unix. No es posible abrir una conexión TCP/IP usando
como nombre de host localhost, se debe usar 127.0.0.1 en su lugar.
<?php
$mysqli = new mysqli("localhost", "usuario", "contraseña", "basedatos"
);
if ($mysqli->connect_errno) {
echo "Fallo al conectar a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock
18
vacíos o no establecidos, puede usar los valores internos predeterminados de
la biblioteca.
Si el valor del host no está establecido o está vacío, la biblioteca cliente usará
una conexión de socket Unix sobre localhost. Si el socket no está establecido o
está vacío, y es solicitada una conexión de socket Unix, se intentará una
conexiónal socket predeterminado de /tmp/mysql.sock.
Opciones de conexión
Caché de conexiones
19
puede servir una o múltiples peticiones. Por lo tanto, una conexión almacenada
en caché puede ser utilizada posteriormente por uno o más scripts.
Conexiones persistentes
Una queja común sobre las conexiones persistentes qes que su estado no es
reiniciado antes de su uso. Por ejemplo, las transacciones abiertas y no
finalizadas no son automéáticamente reanudadas. También, los cambios de
autorización que ocurran durante la colocación de la conexión en la caché y su
reutilización no están reflejados. Esto puede verse como un efecto secundario
no deseado. Al contrario, el nombre persistente puede entenderse como una
promesa de que el estado persiste.
See also
mysqli::__construct()
mysqli::init()
mysqli::options()
mysqli::real_connect()
mysqli::change_user()
$mysqli::host_info
Opciones de configuración de MySQLi
Conexiones persistentes a bases de datos
20
Ejecutar sentencias ¶
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión con MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
21
>connect_errno . ") " . $mysqli->connect_error;
}
Orden inverso...
id = 3
id = 2
id = 1
Orden del conjunto de resultados...
id = 1
id = 2
id = 3
<?php
$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$resultado = $mysqli->use_result();
22
}
?>
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
$resultado = $mysqli-
>query("SELECT id, etiqueta FROM test WHERE id = 1");
$fila = $resultado->fetch_assoc();
id = 1 (string)
etiqueta = a (string)
23
resultados y convertirá las columnas númerocas de SQL a números de PHP, si
el rango de valores del tipo de datos de PHP lo permite. De esta forma, por
ejemplo, las columnas INT de SQL son devueltas como enteros.
<?php
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli-
>real_connect("ejemplo.com", "user", "contraseña", "basedatos");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
$resultado = $mysqli-
>query("SELECT id, etiqueta FROM test WHERE id = 1");
$fila = $resultado->fetch_assoc();
id = 1 (integer)
etiqueta = a (string)
Véase también
mysqli::__construct()
mysqli::init()
mysqli::options()
mysqli::real_connect()
mysqli::query()
mysqli::multi_query()
mysqli::use_result()
mysqli::store_result()
mysqli_result::free()
24
Sentencias Preparadas ¶
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
/* Sentencia no preparada */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli-
>query("CREATE TABLE test(id INT)")) {
echo "Falló la creación de la tabla: (" . $mysqli-
>errno . ") " . $mysqli->error;
}
<?php
/* Sentencia preparada, etapa 2: vincular y ejecutar */
$id = 1;
if (!$sentencia->bind_param("i", $id)) {
echo "Falló la vinculación de parámetros: (" . $sentencia-
25
>errno . ") " . $sentencia->error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
?>
Ejecución repetida
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
/* Sentencia no preparada */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli-
>query("CREATE TABLE test(id INT)")) {
echo "Falló la creación de la tabla: (" . $mysqli-
>errno . ") " . $mysqli->error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
26
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
}
/* Sentencia no preparada */
$resultado = $mysqli->query("SELECT id FROM test");
var_dump($resultado->fetch_all());
?>
array(4) {
[0]=>
array(1) {
[0]=>
string(1) "1"
}
[1]=>
array(1) {
[0]=>
string(1) "2"
}
[2]=>
array(1) {
[0]=>
string(1) "3"
}
[3]=>
array(1) {
[0]=>
string(1) "4"
}
}
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
$sentencia = $mysqli-
>prepare("SELECT id, etiqueta FROM test WHERE id = 1");
$sentencia->execute();
$resultado = $sentencia->get_result();
$fila = $resultado->fetch_assoc();
id = 1 (integer)
etiqueta = a (string)
28
Este comportamiento difiere de las sentencias no preparadas. Por defecto, las
sentencias no preparadas devolverán todos los resultados como cadenas. Este
comportamiento predeterminado se puede cambiar usand una opción de
conexión. Si se utiliza la opción de conexión no existirán diferencias.
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!($sentencia = $mysqli-
>prepare("SELECT id, etiqueta FROM test"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli-
>error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $mysqli->errno . ") " . $mysqli-
>error;
}
$id_salida = NULL;
$etiqueta_salida = NULL;
if (!$sentencia->bind_result($id_salida, $etiqueta_salida)) {
echo "Falló la vinculación de los parámetros de salida: (" . $sent
encia->errno . ") " . $sentencia->error;
}
while ($sentencia->fetch()) {
printf("id = %s (%s), etiqueta = %s (%s)\n", $id_salida, gettype($
id_salida), $etiqueta_salida, gettype($etiqueta_salida));
}
?>
29
El resultado del ejemplo sería:
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!($sentencia = $mysqli-
>prepare("SELECT id, etiqueta FROM test ORDER BY id ASC"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli-
>error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
if (!($resultado = $sentencia->get_result())) {
30
echo "Falló la obtención del conjunto de resultados: (" . $sentenc
ia->errno . ") " . $sentencia->error;
}
var_dump($resultado->fetch_all());
?>
array(1) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
string(1) "a"
}
}
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!($sentencia = $mysqli-
>prepare("SELECT id, etiqueta FROM test"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli-
>error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
if (!($resultado = $sentencia->get_result())) {
echo "Falló la obtención del conjunto de resultados: (" . $sentenc
ia->errno . ") " . $sentencia->error;
31
}
array(2) {
["id"]=>
int(3)
["etiqueta"]=>
string(1) "c"
}
array(2) {
["id"]=>
int(2)
["etiqueta"]=>
string(1) "b"
}
array(2) {
["id"]=>
int(1)
["etiqueta"]=>
string(1) "a"
}
32
La API no inclye la emulación para sentencias preparadas en el lado del
cliente.
Cadenas de sentencias 1 1
tranferidas desde el cliente
al servidor
API de vinculación de Sí No
variables de salida
33
Comparación entre sentencias preparadas y no preparadas
Véase también
mysqli::__construct()
mysqli::query()
mysqli::prepare()
mysqli_stmt::prepare()
mysqli_stmt::execute()
mysqli_stmt::bind_param()
mysqli_stmt::bind_result()
34
Procedimientos almacenados ¶
Parámetros
Parámetro IN
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!$mysqli->query("CALL p(1)")) {
echo "Falló CALL: (" . $mysqli->errno . ") " . $mysqli->error;
}
var_dump($resultado->fetch_assoc());
?>
35
El resultado del ejemplo sería:
array(1) {
["id"]=>
string(1) "1"
}
Parámetro INOUT/OUT
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
$fila = $resultado->fetch_assoc();
echo $fila['_p_out'];
?>
¡Hola!
36
Manejar conjuntos de resultados
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!$mysqli->multi_query("CALL p()")) {
echo "Falló CALL: (" . $mysqli->errno . ") " . $mysqli->error;
}
do {
if ($resultado = $mysqli->store_result()) {
printf("---\n");
var_dump($resultado->fetch_all());
$resultado->free();
} else {
37
if ($mysqli->errno) {
echo "Store failed: (" . $mysqli->errno . ") " . $mysqli-
>error;
}
}
} while ($mysqli->more_results() && $mysqli->next_result());
?>
---
array(3) {
[0]=>
array(1) {
[0]=>
string(1) "1"
}
[1]=>
array(1) {
[0]=>
string(1) "2"
}
[2]=>
array(1) {
[0]=>
string(1) "3"
}
}
---
array(3) {
[0]=>
array(1) {
[0]=>
string(1) "2"
}
[1]=>
array(1) {
[0]=>
string(1) "3"
}
[2]=>
array(1) {
[0]=>
string(1) "4"
}
}
38
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
do {
if ($resultado = $sentencia->get_result()) {
printf("---\n");
var_dump(mysqli_fetch_all($resultado));
mysqli_free_result($resultado);
} else {
if ($sentencia->errno) {
echo "Store failed: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
}
} while ($sentencia->more_results() && $sentencia->next_result());
?>
<?php
if (!($sentencia = $mysqli->prepare("CALL p()"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli-
39
>error;
}
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
do {
$id_out = NULL;
if (!$sentencia->bind_result($id_out)) {
echo "Falló la vinculiación: (" . $sentencia-
>errno . ") " . $sentencia->error;
}
while ($sentencia->fetch()) {
echo "id = $id_out\n";
}
} while ($sentencia->more_results() && $sentencia->next_result());
?>
Véase también
mysqli::query()
mysqli::multi_query()
mysqli_result::next-result()
mysqli_result::more-results()
40
Sentencias Múltiples ¶
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
if (!$mysqli->multi_query($sql)) {
echo "Falló la multiconsulta: (" . $mysqli-
>errno . ") " . $mysqli->error;
}
do {
if ($resultado = $mysqli->store_result()) {
var_dump($resultado->fetch_all(MYSQLI_ASSOC));
$resultado->free();
}
} while ($mysqli->more_results() && $mysqli->next_result());
?>
array(1) {
[0]=>
array(1) {
41
["_num"]=>
string(1) "0"
}
}
array(1) {
[0]=>
array(1) {
["_num"]=>
string(1) "1"
}
}
Consideraciones de seguridad
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "based
atos");
$resultado = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
if (!$resultado) {
echo "Error al ejecutar la consulta: (" . $mysqli-
>errno . ") " . $mysqli->error;
}
?>
Sentencias preparadas
See also
mysqli::query()
mysqli::multi_query()
mysqli_result::next-result()
mysqli_result::more-results()
42
Soporte de la API para transacciones ¶
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
$mysqli->autocommit(false);
43
$mysqli->commit();
?>
Véase también
mysqli::autocommit()
mysqli_result::commit()
mysqli_result::rollback()
44
Metadatos ¶
<?php
$mysqli = new mysqli("ejemplo.com", "usuario", "contraseña", "basedato
s");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli-
>connect_errno . ") " . $mysqli->connect_error;
}
$resultado = $mysqli-
>query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($resultado->fetch_fields());
?>
array(2) {
[0]=>
object(stdClass)#3 (13) {
["name"]=>
string(4) "_one"
["orgname"]=>
string(0) ""
["table"]=>
string(0) ""
["orgtable"]=>
string(0) ""
["def"]=>
string(0) ""
["db"]=>
string(0) ""
["catalog"]=>
string(3) "def"
["max_length"]=>
int(1)
["length"]=>
int(1)
["charsetnr"]=>
int(63)
["flags"]=>
int(32897)
["type"]=>
int(8)
["decimals"]=>
int(0)
45
}
[1]=>
object(stdClass)#4 (13) {
["name"]=>
string(4) "_two"
["orgname"]=>
string(0) ""
["table"]=>
string(0) ""
["orgtable"]=>
string(0) ""
["def"]=>
string(0) ""
["db"]=>
string(0) ""
["catalog"]=>
string(3) "def"
["max_length"]=>
int(5)
["length"]=>
int(5)
["charsetnr"]=>
int(8)
["flags"]=>
int(1)
["type"]=>
int(253)
["decimals"]=>
int(31)
}
}
Sentencias preparadas
<?php
$sentencia = $mysqli-
>prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$sentencia->execute();
$resultado = $sentencia->result_metadata();
var_dump($resultado->fetch_fields());
?>
Véase también
mysqli::query()
mysqli_result::fetch_fields()
46
Instalación/Configuración
Tabla de contenidos ¶
Requerimientos
Instalación
Configuración en tiempo de ejecución
Tipos de recursos
Requerimientos ¶
Para contar con éstas funciones, debe compilar PHP con soporte de la
extensión mysqli.
Nota:
La extensión mysqli está diseñado para funcionar con la versión de MySQL
4.1.13 o posterior, o 5.0.7 o posterior. Para versiones previas, por favor
consulte la documentación de la extensión MySQL.
Instalación ¶
Instalación en Linux ¶
47
ruta/a/mysql_config representa la ubicación del programa mysql_config que
viene con el Servidor de MySQL.
Opciones de Opciones de
PHP Versión Por defecto Historial d
configuración: mysqlnd configuración: libmysqlclient
En estas versiones antiguas de PHP sin soporte (PHP 5.2 alcanzó su final de
vida útil el 6 de enero de 2011), son necesarios procedimientos adicionales de
configuración para habilitar mysqli y especificar la biblioteca cliente que se va a
utilizar.
48
nombre libmysql.dll en la distribución de PHP en Windows. Este fichero debe
estar disponible en la variable de entorno de sistema de Windows PATH, de
modo que puede ser cargado con éxito. Véase la FAQ titulada "Cómo agrego
mi directorio PHP a la variable PATH en Windows" para obtener información
sobre cómo hacer esto. Copiar libmysql.dll al directorio de sistema de
Windows (normalmente C:\Windows\System) funciona, pues el directorio de
sistema esta por defecto en el PATH del sistema. Sin embargo, esta práctica
está totalmente desaconsejada.
Nota:
Si al iniciar el servidor web un error similar al siguiente ocurre: "Unable to load
dynamic library './php_mysqli.dll'", esto es
porque php_mysqli.dll y/o libmysql.dll no pudo ser encontrado por el sistema.
49
He aquí una breve explicación de las directivas de configuración.
mysqli.allow_local_infile integer
mysqli.allow_persistent integer
mysqli.max_persistent integer
mysqli.max_links integer
mysqli.default_port integer
mysqli.default_socket string
mysqli.default_host string
mysqli.default_user string
mysqli.default_pw string
50
La contraseña predeterminada a usar cuando se conecta a la base de
datos servidor si no se indica otra. No se aplica en safe mode.
mysqli.reconnect integer
Tipos de recursos ¶
51
La extensión mysqli y conexiones
persistentes ¶
EL soporte para conexiones persistentes fue introducido en PHP 5.3 para el
extensión mysqli. El soporte ya estaba presente en PDO MYSQL y ext/mysql.
La idea detrás de las conexiones persistentes es que una conexión entre un
proceso cliente y una base de datos puede ser reutilizados por un proceso
cliente, en lugar de ser creado y destruido varias veces. Esto reduce la
sobrecarga de la creación de conexiones nuevas cada vez que es requerido,
como las conexiones no utilizadas se almacenan en caché y están lista para
ser reutilizadas.
52
Es posible desactivar el código de limpieza automática, mediante la
compilación de PHP si se define MYSQLI_NO_CHANGE_USER_ON_PCONNECT.
Nota:
La extensión mysqli soporta conexiones persistentes utilizando ya sea el driver
nativo de MySQL o la libreria cliente de MySQL.
Constantes predefinidas ¶
Estas constantes están definidas por esta extensión y estarán disponibles sólo
cuando la extensión haya sido compilada con PHP, o bien sea cargada
dinámicamente en ejecución.
MYSQLI_READ_DEFAULT_GROUP
MYSQLI_READ_DEFAULT_FILE
MYSQLI_OPT_CONNECT_TIMEOUT
MYSQLI_OPT_LOCAL_INFILE
MYSQLI_INIT_COMMAND
MYSQLI_CLIENT_SSL
Usar SSL (protocolo de cifrado). Esta opción no debe ser fijado por los
programas de aplicación; se establece internamente en la biblioteca
cliente de MySQL
MYSQLI_CLIENT_COMPRESS
MYSQLI_CLIENT_INTERACTIVE
53
variable sesión del cliente wait_timeout se establecerá en el valor de la
variable de sesión interactive_timeout.
MYSQLI_CLIENT_IGNORE_SPACE
MYSQLI_CLIENT_NO_SCHEMA
No permite la sistaxisdb_name.tbl_name.col_name.
MYSQLI_CLIENT_MULTI_QUERIES
MYSQLI_STORE_RESULT
MYSQLI_USE_RESULT
MYSQLI_ASSOC
MYSQLI_NUM
MYSQLI_BOTH
MYSQLI_NOT_NULL_FLAG
MYSQLI_PRI_KEY_FLAG
MYSQLI_UNIQUE_KEY_FLAG
MYSQLI_MULTIPLE_KEY_FLAG
54
El campo es parte de un índice.
MYSQLI_BLOB_FLAG
MYSQLI_UNSIGNED_FLAG
MYSQLI_ZEROFILL_FLAG
MYSQLI_AUTO_INCREMENT_FLAG
MYSQLI_TIMESTAMP_FLAG
MYSQLI_SET_FLAG
MYSQLI_NUM_FLAG
MYSQLI_PART_KEY_FLAG
MYSQLI_GROUP_FLAG
MYSQLI_TYPE_DECIMAL
MYSQLI_TYPE_NEWDECIMAL
MYSQLI_TYPE_BIT
MYSQLI_TYPE_TINY
55
El campo es definido como TINYINT
MYSQLI_TYPE_SHORT
MYSQLI_TYPE_LONG
MYSQLI_TYPE_FLOAT
MYSQLI_TYPE_DOUBLE
MYSQLI_TYPE_NULL
MYSQLI_TYPE_TIMESTAMP
MYSQLI_TYPE_LONGLONG
MYSQLI_TYPE_INT24
MYSQLI_TYPE_DATE
MYSQLI_TYPE_TIME
MYSQLI_TYPE_DATETIME
MYSQLI_TYPE_YEAR
MYSQLI_TYPE_NEWDATE
56
El campo es definido como DATE
MYSQLI_TYPE_INTERVAL
MYSQLI_TYPE_ENUM
MYSQLI_TYPE_SET
MYSQLI_TYPE_TINY_BLOB
MYSQLI_TYPE_MEDIUM_BLOB
MYSQLI_TYPE_LONG_BLOB
MYSQLI_TYPE_BLOB
MYSQLI_TYPE_VAR_STRING
MYSQLI_TYPE_STRING
MYSQLI_TYPE_CHAR
MYSQLI_TYPE_GEOMETRY
MYSQLI_NEED_DATA
MYSQLI_NO_DATA
57
No más datos disponibles para enlazar la variable
MYSQLI_DATA_TRUNCATED
MYSQLI_ENUM_FLAG
MYSQLI_BINARY_FLAG
MYSQLI_CURSOR_TYPE_FOR_UPDATE
MYSQLI_CURSOR_TYPE_NO_CURSOR
MYSQLI_CURSOR_TYPE_READ_ONLY
MYSQLI_CURSOR_TYPE_SCROLLABLE
MYSQLI_STMT_ATTR_CURSOR_TYPE
MYSQLI_STMT_ATTR_PREFETCH_ROWS
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH
MYSQLI_SET_CHARSET_NAME
MYSQLI_REPORT_INDEX
MYSQLI_REPORT_ERROR
MYSQLI_REPORT_STRICT
MYSQLI_REPORT_ALL
MYSQLI_REPORT_OFF
Desactivar la información.
MYSQLI_DEBUG_TRACE_ENABLED
MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED
MYSQLI_SERVER_QUERY_NO_INDEX_USED
MYSQLI_REFRESH_GRANT
58
MYSQLI_REFRESH_LOG
MYSQLI_REFRESH_TABLES
MYSQLI_REFRESH_HOSTS
MYSQLI_REFRESH_STATUS
MYSQLI_REFRESH_THREADS
MYSQLI_REFRESH_SLAVE
MYSQLI_REFRESH_MASTER
MYSQLI_TRANS_COR_AND_CHAIN
MYSQLI_TRANS_COR_AND_NO_CHAIN
MYSQLI_TRANS_COR_RELEASE
MYSQLI_TRANS_COR_NO_RELEASE
MYSQLI_TRANS_START_READ_ONLY
59
Iniciar la transacción como "START TRANSACTION READ ONLY"
con mysqli_begin_transaction().
MYSQLI_TRANS_START_READ_WRITE
MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT
Notas ¶
Algunas notas sobre la implementación:
60
Resumen de las funciones de la extensión MySQLi ¶
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
Propiedades
$mysqli::affected_rows mysqli_affected_rows() N/A Obtiene el número de filas
afectadas en una operación
previa de MySQL
$mysqli::client_info mysqli_get_client_info() N/A Devuelve la versión del
cliente de MySQL como una
cadena
$mysqli::client_version mysqli_get_client_version() N/A Devuelve la versión del
cliente de MySQL como un
entero
$mysqli::connect_errno mysqli_connect_errno() N/A Devuelve el código de error
de la última llamada de
conexión
$mysqli::connect_error mysqli_connect_error() N/A Devuelve una cadena
descriptiva del último error de
conexión
$mysqli::errno mysqli_errno() N/A Devuelve el código de error
para la función invocada más
reciente
$mysqli::error mysqli_error() N/A Devulve una cadena
descriptiva del último error
61
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
$mysqli::field_count mysqli_field_count() N/A Devuelve el número de
columnas de la consulta más
reciente
$mysqli::host_info mysqli_get_host_info() N/A Devuelve una cadena que
representa el tipo de
conexión utilizado
$mysqli::protocol_version mysqli_get_proto_info() N/A Devuelve la versión del
protocolo de MySQL usada
$mysqli::server_info mysqli_get_server_info() N/A Devuelve la versión del
servidor MySQL
$mysqli::server_version mysqli_get_server_version() N/A Devuelve la versión del
servidor MySQL como un
entero
$mysqli::info mysqli_info() N/A Recupera información sobre
la última consulta ejecutada
$mysqli::insert_id mysqli_insert_id() N/A Devuelve el identificador (ID)
autogenerado usado en la
última consulta
$mysqli::sqlstate mysqli_sqlstate() N/A Devuelve el error SQLSTATE
de la operación previa de
MySQL
$mysqli::warning_count mysqli_warning_count() N/A Devuelve el número de
advertencias de la última
consulta para el enlace dado
Methods
62
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli::autocommit() mysqli_autocommit() N/A Activa o desactiva la
autoconsigna de
modificaciones de la base de
datos
mysqli::change_user() mysqli_change_user() N/A Cambia el usuario de la
conexión de base de datos
especificada
mysqli::character_set_name(), mysqli::client_encoding mysqli_character_set_name() mysqli_client_encoding() Devuelve el juego de
caracteres predeterminado
para la conexión de base de
datos
mysqli::close() mysqli_close() N/A Cierra una conexión de base
de datos previamente abierta
mysqli::commit() mysqli_commit() N/A Ejecuta la transacción actual
mysqli::__construct() mysqli_connect() N/A Abrir una nueva conexión al
servidor MySQL [Nota:
método estático (es decir, de
clase)]
mysqli::debug() mysqli_debug() N/A Realiza operaciones de
depuración
mysqli::dump_debug_info() mysqli_dump_debug_info() N/A Volcado de la información de
depuración en el registro
mysqli::get_charset() mysqli_get_charset() N/A Devuelve un conjunto de
caracteres objeto
63
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli::get_connection_stats() mysqli_get_connection_stats() N/A Devuelve las estadísticas de
conexión de cliente.
Disponible sólo con mysqlnd.
mysqli::get_client_info() mysqli_get_client_info() N/A Devuelve la versión de cliente
de MySQL como una cadena
mysqli::get_client_stats() mysqli_get_client_stats() N/A Devuelve las estadísticas del
cliente por proceso.
Disponible sólo con mysqlnd.
mysqli::get_cache_stats() mysqli_get_cache_stats() N/A Devuelve las estadísticas de
clientes Zval caché.
Disponible sólo con mysqlnd.
mysqli::get_server_info() mysqli_get_server_info() N/A Devuelve un string que
representa la versión del
servidor de MySQL a la que
está conectada la extensión
MySQLi
mysqli::get_warnings() mysqli_get_warnings() N/A NO DOCUMENTADA
mysqli::init() mysqli_init() N/A Inicializa MySQLi y devuelve
un recurso para su uso con
mysqli_real_connect. [No
invocado dentro de un objeto,
ya que devuelve un objeto $
mysqli.]
mysqli::kill() mysqli_kill() N/A Pide al servidor matar un hilo
de MySQL
64
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli::more_results() mysqli_more_results() N/A Compruebe si hay más
resultados para una consulta
de múltiple
mysqli::multi_query() mysqli_multi_query() N/A Ejecuta una consulta en la
base de datos
mysqli::next_result() mysqli_next_result() N/A Prepara próximo resultado de
multi_query
mysqli::options() mysqli_options() mysqli_set_opt() Establecer opciones
mysqli::ping() mysqli_ping() N/A Hace ping una conexión de
servidor, o intenta volver a
conectar si la conexión se ha
caído
mysqli::prepare() mysqli_prepare() N/A Prepara una sentencia SQL
para su ejecución
mysqli::query() mysqli_query() N/A Ejecuta una consulta en la
base de datos
mysqli::real_connect() mysqli_real_connect() N/A Abre una conexión a un
servidor MySQL
mysqli::real_escape_string(), mysqli::escape_string() mysqli_real_escape_string() mysqli_escape_string() Escapa caracteres especiales
de una cadena en una
sentencia SQL, teniendo en
cuenta el conjunto de
caracteres actual de la
conexión
mysqli::real_query() mysqli_real_query() N/A Ejecutar una consulta SQL
65
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli::refresh() mysqli_refresh() N/A Vuelca tablas o caches, o
reinicia la información del
servidor réplica
mysqli::rollback() mysqli_rollback() N/A Deshace la transacción actual
mysqli::select_db() mysqli_select_db() N/A Selecciona la base de datos
predeterminada para las
consultas de la base de datos
mysqli::set_charset() mysqli_set_charset() N/A Establece el conjunto de
carácteres predeterminado
del cliente
mysqli::set_local_infile_default() mysqli_set_local_infile_default() N/A Quita el controlador de
usuario definidos para la
carga de comandos infile
locales
mysqli::set_local_infile_handler() mysqli_set_local_infile_handler() N/A establece la funcion callback
para el comando LOAD
DATA LOCAL INFILE
mysqli::ssl_set() mysqli_ssl_set() N/A Utilizada para establecer
conexiones seguras usando
SSL
mysqli::stat() mysqli_stat() N/A Obtiene el estado actual del
sistema
mysqli::stmt_init() mysqli_stmt_init() N/A Inicializa una sentencia y
devuelve un objeto para su
uso con mysqli_stmt_prepare
66
Resumen de los métodos de mysqli
Clase mysqli
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli::store_result() mysqli_store_result() N/A Transfier un conjunto de
resultados de la última
consulta
mysqli::thread_id() mysqli_thread_id() N/A Retorna el ID del hilo para la
conexión actual
mysqli::thread_safe() mysqli_thread_safe() N/A Retorna si la seguridad del
hilo enlace se da o no
mysqli::use_result() mysqli_use_result() N/A Inicia un conjunto de
resultados de recuperación
Resumen de los métodos
de mysqli_stmt
MySQL_STMT
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
Propiedades
$mysqli_stmt::affected_rows mysqli_stmt_affected_rows() N/A Devuelve el número total de registros actualizados,
eliminados o insertados por la última sentencia
ejecutada
$mysqli_stmt::errno mysqli_stmt_errno() N/A Devuelve el código de error para la sentencia
recientemente llamada
$mysqli_stmt::error mysqli_stmt_error() N/A Devuelve una cadena de descripción de la última
sentencia de error
$mysqli_stmt::field_count mysqli_stmt_field_count() N/A Devuelve el número de campo en la sentencia dada -
no ducumentada
$mysqli_stmt::insert_id mysqli_stmt_insert_id() N/A Obtener el Identificador (ID) generado en la operación
de INSERT anterior
67
Resumen de los métodos
de mysqli_stmt
MySQL_STMT
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
$mysqli_stmt::num_rows mysqli_stmt_num_rows() N/A Devuelve el número de filas en las sentencias del
conjunto de resultados
$mysqli_stmt::param_count mysqli_stmt_param_count() mysqli_param_count() Devuelve el número de parámetros para la sentencia
dada
$mysqli_stmt::sqlstate mysqli_stmt_sqlstate() N/A Devuelve el error SQLSTATE de la operación de la
declaración anterior
Métodos
mysqli_stmt::attr_get() mysqli_stmt_attr_get() N/A Usado para obtener el valor actual de un atributo de
una setencia
mysqli_stmt::attr_set() mysqli_stmt_attr_set() N/A Usado para modificar el comportamiento de una
sentencia preparada
mysqli_stmt::bind_param() mysqli_stmt_bind_param() mysqli_bind_param() Agrega variables a una sentencia preparada como
parámetros
mysqli_stmt::bind_result() mysqli_stmt_bind_result() mysqli_bind_result() Agrega variables a una sentencia prepearada para el
almacenamiento de resultado
mysqli_stmt::close() mysqli_stmt_close() N/A Cierra una sentencia preparada
mysqli_stmt::data_seek() mysqli_stmt_data_seek() N/A Busca a una fila arbitraria en el conjunto de resultados
de una sentencia
mysqli_stmt::execute() mysqli_stmt_execute() mysqli_execute() Ejecuta una consulta preparada
mysqli_stmt::fetch() mysqli_stmt_fetch() mysqli_fetch() Recuperar los resultados de una sentencia preparada
en las variables ligadas
mysqli_stmt::free_result() mysqli_stmt_free_result() N/A Libera la memoria almacenada resultado del manejar
de sentencia
68
Resumen de los métodos
de mysqli_stmt
MySQL_STMT
Interfaz POO Interfaz de procedimiento Alias (no usar) Descripción
mysqli_stmt::get_result() mysqli_stmt_get_result() N/A Obtiene un conjunto de resultados de una sentencia
preparada Disponible sólo con mysqlnd.
mysqli_stmt::get_warnings() mysqli_stmt_get_warnings() N/A NO DOCUMENTADA
mysqli_stmt::more_results() mysqli_stmt_more_results() N/A Comprueba si existen más resultados de consultas de
una consulta múltiple
mysqli_stmt::next_result() mysqli_stmt_next_result() N/A Lee el siguiente resultado de una consulta múltiple
mysqli_stmt::num_rows() mysqli_stmt_num_rows() N/A Véase también la propiedad $mysqli_stmt::num_rows
mysqli_stmt::prepare() mysqli_stmt_prepare() N/A Preparar una sentencia SQL para su ejecución
mysqli_stmt::reset() mysqli_stmt_reset() N/A Restablece una sentencia preparada
mysqli_stmt::result_metadata() mysqli_stmt_result_metadata() mysqli_get_metadata() Devuelve un conjunto de resultados de metadatos de
una setencia preparada
mysqli_stmt::send_long_data() mysqli_stmt_send_long_data() mysqli_send_long_data() Envia los datos en bloques
mysqli_stmt::store_result() mysqli_stmt_store_result() N/A Transfiere un conjunto de resultados de una sentencia
preparada
Resumen de los métodos de mysqli_result
mysqli_result
Alias
Interfaz de
Interfaz POO (No Descripcíon
procedimiento
usar)
Propiedades
$mysqli_result::current_field mysqli_field_tell() N/A Obtener el campo de desplazamiento
actual de un puntero de resultado
$mysqli_result::field_count mysqli_num_fields() N/A Obtiene el número de campos de un
resultado
69
Resumen de los métodos de mysqli_result
mysqli_result
Alias
Interfaz de
Interfaz POO (No Descripcíon
procedimiento
usar)
$mysqli_result::lengths mysqli_fetch_lengths() N/A Devuelve la longitud de las columnas de
la fila actual en el conjunto de resultados
$mysqli_result::num_rows mysqli_num_rows() N/A Obtiene el número de filas de un resultado
Métodos
mysqli_result::data_seek() mysqli_data_seek() N/A Ajusta el puntero del resultado a una fila
arbitraria en el resultado
mysqli_result::fetch_all() mysqli_fetch_all() N/A Obtiene todas las filas de resultados y
devuelve el resultado como un array
asociativo, una array numérico, o ambos.
Disponible sólo con mysqlnd.
mysqli_result::fetch_array() mysqli_fetch_array() N/A Extrae la fila de deresultados como
asociativo, un array numérico, o ambas
mysqli_result::fetch_assoc() mysqli_fetch_assoc() N/A Extrae la fila de resultados como un array
asociativo
mysqli_result::fetch_field_direct() mysqli_fetch_field_direct() N/A Extrae metadatos para un solo campo
mysqli_result::fetch_field() mysqli_fetch_field() N/A Devuelve el siguiente campo en el
conjunto de resultados
mysqli_result::fetch_fields() mysqli_fetch_fields() N/A Devuelve un array de objetos que
representan los campos de un conjunto
de resultados
mysqli_result::fetch_object() mysqli_fetch_object() N/A Devuelve la fila actual del resultado en
forma de un objeto
mysqli_result::fetch_row() mysqli_fetch_row() N/A Obtiene una fila de resultados como un
array enumerado
70
Resumen de los métodos de mysqli_result
mysqli_result
Alias
Interfaz de
Interfaz POO (No Descripcíon
procedimiento
usar)
mysqli_result::field_seek() mysqli_field_seek() N/A Establece el puntero del resultado a un
determinado campo de desplazamiento
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result mysqli_free_result() N/A Libera la memoria asociada con un
resultado
Resumen de los métodos
de mysqli_driver
MySQL_Driver
Alias (no
Interfaz POO Interfaz de procedimiento Descripción
usar)
Propiedades
N/A
Métodos
mysqli_driver::embedded_server_end() mysqli_embedded_server_end() N/A NO DOCUMENTADA
mysqli_driver::embedded_server_start() mysqli_embedded_server_start() N/A NO DOCUMENTADA
Nota:
Las funciones alias se proporcionan para compatibilidad con versiones anteriores solamente. No los use en nuevos proyectos.
71
Ejemplos ¶
Tabla de contenidos ¶
Este ejemplo emplea la base de datos de libre disposición Sakila, la cual puede
descargarse desde » dev.mysql.com, tal como se describe aquí. Para que este
ejemplo funcione, (a) instalar sakila y (b) modificar las variables de conexión
(host, tu_usuario, tu_contraseña).
<?php
// Vamos a pasar una variable $_GET a nuestro ejemplo, en este caso es
// 'aid' para 'actor_id' de nuestra base de datos Sakila. Le vamos a a
signar un
// valor predeterminado de 1, y a amoldarla a un integer para evitar i
nyecciones
// de SQL y/o problemas de seguridad relacionados. El manejo de todo e
sto va más
// allá del alcance de este sencillo ejemplo:
// http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
$aid = (int) $_GET['aid'];
} else {
$aid = 1;
}
// Probemos esto:
echo "Lo sentimos, este sitio web está experimentando problemas.";
72
// Algo que no se debería de hacer en un sitio público, aunque est
e ejemplo lo mostrará
// de todas formas, es imprimir información relacionada con errore
s de MySQL -- se podría registrar
echo "Error: Fallo al conectarse a MySQL debido a: \n";
echo "Errno: " . $mysqli->connect_errno . "\n";
echo "Error: " . $mysqli->connect_error . "\n";
73
d() LIMIT 5";
if (!$resultado = $mysqli->query($sql)) {
echo "Lo sentimos, este sitio web está experimentando problemas.";
exit;
}
74
La clase mysqli ¶
(PHP 5, PHP 7)
Introducción ¶
Sinopsis de la Clase ¶
mysqli {
/* Propiedades */
int $affected_rows;
int $connect_errno;
string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Métodos */
__construct ([ string $host = ini_get("mysqli.default_host") [, string $username =
ini_get("mysqli.default_user") [, string $passwd =
ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port =
ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
75
close ( void ) : bool
commit ([ int $flags [, string $name ]] ) : bool
public static poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec
] ) : int
prepare ( string $query ) : mysqli_stmt
real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int
$port [, string $socket [, int $flags ]]]]]]] ) : bool
76
ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
stat ( void ) : string
stmt_init ( void ) : mysqli_stmt
store_result ([ int $option ] ) : mysqli_result
use_result ( void ) : mysqli_result
}
mysqli::$affected_rows
mysqli_affected_rows
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->affected_rows;
Parámetros ¶
link
Valores devueltos ¶
77
UPDATE, que no hay filas que cumplan la cláusula WHERE de la sentencia o
que ninguna consulta ha sido ejecutada todavía. -1 indica que la consulta
devolvió un error.
Nota:
Si el número de filas afectadas es mayor de el máximo valor entero
( PHP_INT_MAX ), dicho número será devuelto como una cadena (string).
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Comprueba la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Inserta filas */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);
/* Actualiza filas */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);
/* Elimina filas */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);
$result->close();
/* Cierra la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
78
if (!$link) {
printf("Can't connect to localhost. Error: %s\n", mysqli_connect_e
rror());
exit();
}
/* Inserta filas */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLangua
ge");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));
/* Actualiza filas */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 5
0");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));
/* Elimina filas */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));
mysqli_free_result($result);
/* Cierra la conexión */
mysqli_close($link);
?>
79
mysqli::autocommit
mysqli_autocommit
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
mode
Valores devueltos ¶
Notas ¶
Nota:
Esta función no puede aplicarse a tipos de tablas no transaccionales (como
MyISAM o ISAM).
Ejemplos ¶
if (mysqli_connect_errno()) {
printf("Fallo la conexión: %s\n", mysqli_connect_error());
exit();
}
/* activar la autoconsigna */
$mysqli->autocommit(TRUE);
/* Cerrar conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
if (!$enlace) {
printf("Imposible conectar a localhost. Error: %s\n", mysqli_conne
ct_error());
exit();
}
/* activar la autoconsigna */
mysqli_autocommit($enlace, TRUE);
/* close connection */
mysqli_close($enlace);
?>
El estado de la autoconsigna es 1
Ver también ¶
81
mysqli::begin_transaction
mysqli_begin_transaction
(PHP 5 >= 5.5.0, PHP 7)
Descripción ¶
Parámetros ¶
link
flags
name
82
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("127.0.0.1", "mi_usuario", "mi_contraseña", "saki
la");
if ($mysqli->connect_errno) {
printf("Conexión fallida: %s\n", $mysqli->connect_error);
exit();
}
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("127.0.0.1", "mi_usuario", "mi_contraseña", "
sakila");
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
mysqli_begin_transaction($enlace, MYSQLI_TRANS_START_READ_ONLY);
mysqli_close($enlace);
?>
Ver también ¶
83
mysqli::change_user
mysqli_change_user
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
user
password
Contraseña de MySQL.
database
84
La base de datos a la que quiero cambiar.
Valores devueltos ¶
Notas ¶
Nota:
El uso de este comando siempre causará que la conexión a la base de datos
actual se comporte como una conexión completamente nueva,
independientemente de si la operación se ha completado con éxito. Este
reinicio incluye la realización de un "rollback" a cualquier transacción activa,
cerrando todas las tablas temporales, y desbloqueando todas las tablas
bloqueadas.
Ejemplos ¶
<?php
/* check connection */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
$mysqli->query("SET @a:=1");
85
}
$result->close();
}
/* close connection */
$mysqli->close();
?>
<?php
/* connect database test */
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "te
st");
/* check connection */
if (!$link) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
mysqli_query($link, "SET @a:=1");
/* Cerrar conexión */
mysqli_close($link);
?>
86
mysqli::character_set_name
mysqli_character_set_name
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("La conexión falló: %s\n", mysqli_connect_error());
87
exit();
}
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* comprobar la conexión */
if (!$link) {
printf("La conexión falló: %s\n", mysqli_connect_error());
exit();
}
/* close connection */
mysqli_close($link);
?>
mysqli::close
mysqli_close
88
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
Veasé mysqli_connect().
Notas ¶
Nota:
mysqli_close() no cerrará las conexiones persistentes. Para más detalles,
véase la página del manual sobre conexiones persistentes.
Ver también ¶
89
mysqli::commit
mysqli_commit
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
flags
name
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
5.5.0 Se añadieron los parámetros flags y name.
90
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* Desactivar la autoconsigna */
$mysqli->autocommit(FALSE);
/* Consignar la transacción */
if (!$mysqli->commit()) {
print("Falló la consignación de la transacción\n");
exit();
}
/* Eliminar la tabla */
$mysqli->query("DROP TABLE Language");
/* Cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "my_user", "my_password", "test"
);
/* Comprobar la conexión */
if (!$enlace) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* Desactivar la autoconsignación */
mysqli_autocommit($enlace, FALSE);
91
mysqli_query($enlace, "INSERT INTO Language VALUES ('DEU', 'Swabian',
'F', 9.4)");
/* Consignar la transación */
if (!mysqli_commit($enlace)) {
print("Falló la consignación de la transacción\n");
exit();
}
/* Cerrar la conexión */
mysqli_close($enlace);
?>
Ver también ¶
mysqli::$connect_errno
mysqli_connect_errno
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->connect_errno;
Nota:
Los números de los mensajes de error están listados en el fichero de
cabeceras de MySQL errmsg.h, los números de los mensajes de error del
92
servidor están listados en mysqld_error.h. En la distribución de código fuente
puede encontrar una lista completa de los mensajes de error y sus números en
el fichero Docs/mysqld_error.txt.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db'
);
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}
?>
<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_d
b');
if (!$link) {
die('Connect Error: ' . mysqli_connect_errno());
}
?>
Ver también ¶
mysqli::$connect_error
93
mysqli_connect_error
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->connect_error;
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db'
);
<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_d
b');
if (!$link) {
die('Error de conexión: ' . mysqli_connect_error());
}
?>
Notas ¶
Advertencia
La propiedad mysqli->connect_error solo funciona correctamente en las
versiones 5.2.9 y 5.3.0 de PHP. Usa la funciónmysqli_connect_error() si es
necesaria la compatibilidad con versiones anteriores de PHP.
Ver también ¶
mysqli::__construct
mysqli_connect
(PHP 5, PHP 7)
Descripción ¶
95
mysqli_connect ([ string $host =
ini_get("mysqli.default_host") [, string $username =
ini_get("mysqli.default_user") [, string $passwd =
ini_get("mysqli.default_pw") [, string $dbname =
"" [, int $port =
ini_get("mysqli.default_port") [, string $socket =
ini_get("mysqli.default_socket") ]]]]]] ) : mysqli
Parámetros ¶
host
username
passwd
dbname
port
socket
Nota:
Especificar el parámetro socket no determinará explicitamente el
tipo de conexión a utilizar cuando se conecte al servidor MySQL.
96
El modo de realizar la conexión a la base de datos MySQL es
determinado por el parámetro host.
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
5.3.0 Se añadió la capacidad de conexiones persistentes.
Ejemplos ¶
<?php
$mysqli = new mysqli('localhost', 'mi_usuario', 'mi_contraseña', 'mi_b
d');
/*
* Esta es la forma OO "oficial" de hacerlo,
* AUNQUE $connect_error estaba averiado hasta PHP 5.2.9 y 5.3.0.
*/
if ($mysqli->connect_error) {
die('Error de Conexión (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
/*
* Use esto en lugar de $connect_error si necesita asegurarse
* de la compatibilidad con versiones de PHP anteriores a 5.2.9 y 5.3.
0.
*/
if (mysqli_connect_error()) {
die('Error de Conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
$mysqli->close();
?>
<?php
if (mysqli_connect_error()) {
die('Error de Conexión (' . mysqli_connect_errno() . ') '
97
. mysqli_connect_error());
}
}
}
$bd->close();
?>
<?php
$enlace = mysqli_connect('localhost', 'mi_usuario', 'mi_contraseña', '
mi_bd');
if (!$enlace) {
die('Error de Conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
mysqli_close($enlace);
?>
Notas ¶
Nota:
MySQLnd siempre utiliza el juego de caracteres de idioma predeterminado. El
juego de caracteres se envía en la autentificación/acuerdo que se produce
durante la conexión, que utilizará mysqlnd.
Nota:
Sólo para la sintaxis OO: Si una conexión falla se devuelve un objeto. Para
comprobar si la conexión falló, use la función mysqli_connect_error() o la
propiedad mysqli->connect_error como en los ejemplos anteriores.
Nota:
Si es necesario establecer las opciones, tales como el tiempo de espera de
conexión, se debe utilizar mysqli_real_connect() en su lugar.
Nota:
Llamar al constructor sin parámetros es lo mismo que llamar a la
función mysqli_init().
98
Nota:
El error "Can't create TCP/IP socket (10106)" normalmente significa que la
directiva de configuración variables_order no contiene el carácter E. En
Windows, si el entorno no es copiado, la variable de entorno SYSTEMROOT no
estará disponible y PHP tendrá problemas al cargar Winsock.
Ver también ¶
mysqli::debug
mysqli_debug
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
message
Valores devueltos ¶
99
Devuelve TRUE.
Notas ¶
Nota:
Para usar la función mysqli_debug() debes compilar la librería del cliente
MySQL para que soporte depuración.
Ejemplos ¶
<?php
?>
Ver también ¶
mysqli::dump_debug_info
mysqli_dump_debug_info
(PHP 5, PHP 7)
Descripción ¶
100
Esta función está diseñada para ser ejecutada por un usuario con el privilegio
SUPER y se utiliza para volcar la información de depuración en el registro para
el servidor MySQL relacionado con la conexión.
Parámetros ¶
link
Valores devueltos ¶
Ver también ¶
mysqli::$errno
mysqli_errno
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->errno;
101
indicados en mysqld_error.h. En la documentación de MySQL puedes
encontrar una lista de mensajes de error y su numeración en el
fichero Docs/mysqld_error.txt.
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* comprobar la conexión */
if ($mysqli->connect_errno) {
printf("Falló la conexión: %s\n", $mysqli->connect_error);
exit();
}
if (!$mysqli->query("SET a=1")) {
printf("Código de error: %d\n", $mysqli->errno);
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
102
/* close connection */
mysqli_close($link);
?>
Errorcode: 1193
Ver también ¶
mysqli::$error_list
mysqli_error_list
(PHP 5 >= 5.4.0, PHP 7)
Descripción ¶
array $mysqli->error_list;
Parámetros ¶
link
103
Sólo estilo por procediminetos: Un identificador de enlace devuelto
por mysqli_connect() o mysqli_init()
Valores devueltos ¶
Una lista de errores, cada uno como un array asociativo que contiene el errno,
el error, y el sqlstate.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "nadie", "");
/* verficar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if (!$mysqli->query("SET a=1")) {
print_r($mysqli->error_list);
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
/* verficar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Array
(
[0] => Array
104
(
[errno] => 1193
[sqlstate] => HY000
[error] => Unknown system variable 'a'
)
Ver también ¶
mysqli::$error
mysqli_error
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->error;
Devuelve el últmo mensaje de error para la llamada más reciente a una función
de MySQLi que puede haberse ejecutado correctamente o haber fallado.
Parámetros ¶
link
105
Sólo estilo por procediminetos: Un identificador de enlace devuelto
por mysqli_connect() o mysqli_init()
Valores devueltos ¶
Una cadena que describe el error. Una cadena vacía si no ha ocurrido error
alguno.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Comprueba la conexión */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if (!$mysqli->query("SET a=1")) {
printf("Errormessage: %s\n", $mysqli->error);
}
/* Cierra la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* Comprueba la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Cierra la conexión */
mysqli_close($link);
?>
Ver también ¶
106
mysqli_connect_errno() - Devuelve el código de error de la última
llamada
mysqli_connect_error() - Devuelve una cadena con la descripción del
último error de conexión
mysqli_errno() - Devuelve el código del error de la última función llamada
mysqli_sqlstate() - Devuelve el error SQLSTATE de la operación de
MySQL previa
mysqli::$field_count
mysqli_field_count
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->field_count;
Parámetros ¶
link
Valores devueltos ¶
107
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
$mysqli-
>query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");
if ($mysqli->field_count) {
/* this was a select/show or describe query */
$result = $mysqli->store_result();
/* process resultset */
$row = $result->fetch_row();
/* free resultset */
$result->close();
}
/* close connection */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
if (mysqli_field_count($link)) {
/* this was a select/show or describe query */
$result = mysqli_store_result($link);
/* process resultset */
$row = mysqli_fetch_row($result);
/* free resultset */
mysqli_free_result($result);
}
/* close connection */
108
mysqli_close($link);
?>
mysqli::get_charset
mysqli_get_charset
(PHP 5 >= 5.1.0, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
charset
collation
Nombre de la colación
dir
109
Directory the charset description was fetched from (?) or "" for built-in
character sets
min_length
max_length
number
state
Ejemplos ¶
<?php
$db = mysqli_init();
$db->real_connect("localhost","root","","test");
var_dump($db->get_charset());
?>
<?php
$db = mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
var_dump(mysqli_get_charset($db));
?>
object(stdClass)#2 (7) {
["charset"]=>
string(6) "latin1"
["collation"]=>
string(17) "latin1_swedish_ci"
["dir"]=>
string(0) ""
["min_length"]=>
int(1)
["max_length"]=>
int(1)
["number"]=>
int(8)
["state"]=>
110
int(801)
}
Ver también ¶
mysqli::get_client_info
mysqli_get_client_info
(PHP 5, PHP 7)
Descripción ¶
Valores devueltos ¶
Ejemplos ¶
Ejemplo #1 mysqli_get_client_info
<?php
111
o());
?>
Ver también ¶
mysqli_get_client_version
mysqli::$client_version
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->client_version;
Valores devueltos ¶
Ejemplos ¶
Ejemplo #1 mysqli_get_client_version
112
<?php
Ver también ¶
mysqli::get_connection_stats
mysqli_get_connection_stats
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
link
113
Valores devueltos ¶
Ejemplos ¶
<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>
Array
(
[bytes_sent] => 43
[bytes_received] => 80
[packets_sent] => 1
[packets_received] => 2
[protocol_overhead_in] => 8
[protocol_overhead_out] => 4
[bytes_received_ok_packet] => 11
[bytes_received_eof_packet] => 0
[bytes_received_rset_header_packet] => 0
[bytes_received_rset_field_meta_packet] => 0
[bytes_received_rset_row_packet] => 0
[bytes_received_prepare_response_packet] => 0
[bytes_received_change_user_packet] => 0
[packets_sent_command] => 0
[packets_received_ok] => 1
[packets_received_eof] => 0
[packets_received_rset_header] => 0
[packets_received_rset_field_meta] => 0
[packets_received_rset_row] => 0
[packets_received_prepare_response] => 0
[packets_received_change_user] => 0
[result_set_queries] => 0
[non_result_set_queries] => 0
[no_index_used] => 0
[bad_index_used] => 0
[slow_queries] => 0
[buffered_sets] => 0
[unbuffered_sets] => 0
[ps_buffered_sets] => 0
[ps_unbuffered_sets] => 0
[flushed_normal_sets] => 0
[flushed_ps_sets] => 0
[ps_prepared_never_executed] => 0
[ps_prepared_once_executed] => 0
[rows_fetched_from_server_normal] => 0
[rows_fetched_from_server_ps] => 0
[rows_buffered_from_client_normal] => 0
[rows_buffered_from_client_ps] => 0
[rows_fetched_from_client_normal_buffered] => 0
[rows_fetched_from_client_normal_unbuffered] => 0
114
[rows_fetched_from_client_ps_buffered] => 0
[rows_fetched_from_client_ps_unbuffered] => 0
[rows_fetched_from_client_ps_cursor] => 0
[rows_skipped_normal] => 0
[rows_skipped_ps] => 0
[copy_on_write_saved] => 0
[copy_on_write_performed] => 0
[command_buffer_too_small] => 0
[connect_success] => 1
[connect_failure] => 0
[connection_reused] => 0
[reconnect] => 0
[pconnect_success] => 0
[active_connections] => 1
[active_persistent_connections] => 0
[explicit_close] => 0
[implicit_close] => 0
[disconnect_close] => 0
[in_middle_of_command_close] => 0
[explicit_free_result] => 0
[implicit_free_result] => 0
[explicit_stmt_close] => 0
[implicit_stmt_close] => 0
[mem_emalloc_count] => 0
[mem_emalloc_ammount] => 0
[mem_ecalloc_count] => 0
[mem_ecalloc_ammount] => 0
[mem_erealloc_count] => 0
[mem_erealloc_ammount] => 0
[mem_efree_count] => 0
[mem_malloc_count] => 0
[mem_malloc_ammount] => 0
[mem_calloc_count] => 0
[mem_calloc_ammount] => 0
[mem_realloc_count] => 0
[mem_realloc_ammount] => 0
[mem_free_count] => 0
[proto_text_fetched_null] => 0
[proto_text_fetched_bit] => 0
[proto_text_fetched_tinyint] => 0
[proto_text_fetched_short] => 0
[proto_text_fetched_int24] => 0
[proto_text_fetched_int] => 0
[proto_text_fetched_bigint] => 0
[proto_text_fetched_decimal] => 0
[proto_text_fetched_float] => 0
[proto_text_fetched_double] => 0
[proto_text_fetched_date] => 0
[proto_text_fetched_year] => 0
[proto_text_fetched_time] => 0
[proto_text_fetched_datetime] => 0
[proto_text_fetched_timestamp] => 0
[proto_text_fetched_string] => 0
[proto_text_fetched_blob] => 0
[proto_text_fetched_enum] => 0
[proto_text_fetched_set] => 0
[proto_text_fetched_geometry] => 0
[proto_text_fetched_other] => 0
[proto_binary_fetched_null] => 0
[proto_binary_fetched_bit] => 0
[proto_binary_fetched_tinyint] => 0
115
[proto_binary_fetched_short] => 0
[proto_binary_fetched_int24] => 0
[proto_binary_fetched_int] => 0
[proto_binary_fetched_bigint] => 0
[proto_binary_fetched_decimal] => 0
[proto_binary_fetched_float] => 0
[proto_binary_fetched_double] => 0
[proto_binary_fetched_date] => 0
[proto_binary_fetched_year] => 0
[proto_binary_fetched_time] => 0
[proto_binary_fetched_datetime] => 0
[proto_binary_fetched_timestamp] => 0
[proto_binary_fetched_string] => 0
[proto_binary_fetched_blob] => 0
[proto_binary_fetched_enum] => 0
[proto_binary_fetched_set] => 0
[proto_binary_fetched_geometry] => 0
[proto_binary_fetched_other] => 0
)
Ver también ¶
Stats description
mysqli::$host_info
mysqli_get_host_info
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->host_info;
Parámetros ¶
116
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
mysqli_close($link);
?>
Ver también ¶
117
mysqli_get_proto_info() - Devuelve la versión del protocolo MySQL
utilizada
mysqli::$protocol_version
mysqli_get_proto_info
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->protocol_version;
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");
118
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
mysqli_close($link);
?>
Protocol version: 10
Ver también ¶
mysqli::$server_info
mysqli::get_server_info
mysqli_get_server_info
(PHP 5, PHP 7)
119
mysqli::$server_info -- mysqli::get_server_info -
- mysqli_get_server_info — Devuelve la versión del servidor MySQL
Descripción ¶
string $mysqli->server_info;
mysqli_stmt::get_server_info ( void ) : string
Devuelve una cadena que representa la versión del servidor MySQL al que
está conectada la extensión MySQLi.
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
120
<?php
$link = mysqli_connect("localhost", "my_user", "my_password");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
mysqli_close($link);
?>
Ver también ¶
mysqli::$server_info
mysqli::get_server_info
mysqli_get_server_info
(PHP 5, PHP 7)
mysqli::$server_info -- mysqli::get_server_info -
- mysqli_get_server_info — Devuelve la versión del servidor MySQL
Descripción ¶
string $mysqli->server_info;
mysqli_stmt::get_server_info ( void ) : string
121
Estilo por procedimientos
Devuelve una cadena que representa la versión del servidor MySQL al que
está conectada la extensión MySQLi.
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
122
/* cerrar conexión */
mysqli_close($link);
?>
mysqli::get_warnings
mysqli_get_warnings
(PHP 5 >= 5.1.0, PHP 7)
Descripción ¶
mysqli::$info
123
mysqli_info
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->info;
Nota:
Las consultas que no estén incluidas en uno de los formatos anteriores no
están soportadas. En estas situaciones, mysqli_info() devolverá una cadena
vacía.
Parámetros ¶
link
Valores devueltos ¶
124
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* close connection */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* close connection */
mysqli_close($link);
?>
125
Ver también ¶
mysqli::init
mysqli_init
(PHP 5, PHP 7)
Descripción ¶
Nota:
Cualquier llamada a cualquier función de mysqli (excepto mysqli_options())
fallará hasta que mysqli_real_connect() sea llamada.
Valores devueltos ¶
Devuelve un objeto.
Ejemplos ¶
Veasé mysqli_real_connect().
Ver también ¶
126
mysqli_close() - Cierra una conexión previamente abierta a una base de datos
mysqli_real_connect() - Abre una conexión a un servidor mysql
mysqli_connect() - Alias de mysqli::__construct
mysqli::$insert_id
mysqli_insert_id
(PHP 5, PHP 7)
Descripción ¶
mixed $mysqli->insert_id;
Nota:
Realizar una sentencia INSERT o UPDATE usando la función
LAST_INSERT_ID() modificará el valor retornado por la
función mysqli_insert_id().
Parámetros ¶
link
Valores devueltos ¶
127
Nota:
Si el número es mayor que el valor máximo int, mysqli_insert_id() retornará un
string.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_password", "world"
);
/* check connection */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* drop table */
$mysqli->query("DROP TABLE myCity");
/* close connection */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "mi_usuario", "mi_password", "worl
d");
/* check connection */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* drop table */
128
mysqli_query($link, "DROP TABLE myCity");
/* close connection */
mysqli_close($link);
?>
mysqli::kill
mysqli_kill
(PHP 5, PHP 7)
Descripción ¶
Esta función se usa para pedir al servidor que ponga fin a un hilo MySQL
especificado por el parámetro processid. Este valor tiene que ser obtenido
llamando a la función mysqli_thread_id().
Para detener una consulta en ejecución debe usarse el comando SQL KILL
QUERY processid.
Parámetros ¶
link
Valores devueltos ¶
129
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "wo
rld");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
130
/* cerrar conexión */
mysqli_close($link);
?>
mysqli::more_results
mysqli_more_results
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
131
Ejemplos ¶
See mysqli_multi_query().
Ver también ¶
mysqli::multi_query
mysqli_multi_query
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
query
132
Consulta, en forma de string.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "wo
rld");
133
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar conexión */
mysqli_close($link);
?>
my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer
Ver también ¶
mysqli::next_result
134
mysqli_next_result
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
See mysqli_multi_query().
Ver también ¶
135
mysqli::options
mysqli_options
(PHP 5, PHP 7)
Descripción ¶
Se puede llamar varias veces a esta función para establecer varias opciones.
Parámetros ¶
link
opción
Opciones válidas
Nombre Descripción
MYSQLI_OPT_CONNECT_TIMEOUT tiempo de expiración en segundos de la conexión
(soportado en Windows con TCP/IP desde PHP 5.3.1)
MYSQLI_OPT_LOCAL_INFILE habilitar/deshabilitar el uso de LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND comando a ejecutar tras conectar al servidor MySQL
136
Opciones válidas
Nombre Descripción
MYSQLI_READ_DEFAULT_FILE Leer las opciones del fichero nombrado de opciones
en lugar de my.cnf
MYSQLI_READ_DEFAULT_GROUP Leer opciones del grupo nombrado de my.cnf o del
fichero especificado
con MYSQL_READ_DEFAULT_FILE.
MYSQLI_SERVER_PUBLIC_KEY Fichero de clave pública RSA usado con la
autenticación basada en SHA-256.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE El tamaño del búfer interno de órdenes/red. Solo
válido para mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE Tamaño de trozo de lectura máximo en bytes al leer
el cuerpo de un paquete de órdenes de MySQL. Solo
válido para mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE Convertir columnas integer y float a números de
PHP. Únicamente válido para mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
value
Valor de la opción.
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
Ejemplos ¶
Vea mysqli_real_connect().
Notas ¶
Nota:
137
MySQLnd siempre utiliza el juego de caracteres de idioma predeterminado. El
juego de caracteres se envía en la autentificación/acuerdo que se produce
durante la conexión, que utilizará mysqlnd.
Ver también ¶
mysqli::ping
mysqli_ping
(PHP 5, PHP 7)
Descripción ¶
Esta función la pueden utilizar clientes que permanecen inactivos por mucho
tiempo para comprobar si el servidor ha cerrado la conexión y reconectar si
fuera necesario.
Parámetros ¶
link
138
Sólo estilo por procediminetos: Un identificador de enlace devuelto
por mysqli_connect() o mysqli_init()
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if ($mysqli->connect_errno) {
printf("Conexión fallida: %s\n", $mysqli->connect_error);
exit();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar la conexión */
139
mysqli_close($enlace);
?>
mysqli::poll
mysqli_poll
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
read
error
reject
140
sec
usec
Valores devueltos ¶
Ejemplos ¶
<?php
$enlace1 = mysqli_connect();
$enlace1->query("SELECT 'test'", MYSQLI_ASYNC);
$todos_los_enlaces = array($enlace1);
$procesado = 0;
do {
$enlaces = $errores = $rechazados = array();
foreach ($todos_los_enlaces as $enlace) {
$enlaces[] = $errores[] = $rechazados[] = $enlace;
}
if (!mysqli_poll($enlaces, $errores, $rechazados, 1)) {
continue;
}
foreach ($enlaces as $enlace) {
if ($resultado = $enlace->reap_async_query()) {
print_r($resultado->fetch_row());
if (is_object($resultado))
mysqli_free_result($resultado);
} else die(sprintf("MySQLi Error: %s", mysqli_error($enlace1))
);
$procesado++;
}
} while ($procesado < count($todos_los_enlaces));
?>
Array
(
[0] => test
)
Ver también ¶
141
mysqli::prepare
mysqli_prepare
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
query
Nota:
No se debe agregar un punto y coma o \g a la sentencia.
Nota:
142
Los marcadores son legales solo en ciertos lugares en las sentencias
SQL. Por ejemplo, se les permite en la lista VALUES() de una
sentencia INSERT (para especificar valores de columna para una fila), o
en una comparación con una columna en una cláusula WHERE para
especificar un valor de comparación.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* ejecutar la consulta */
$stmt->execute();
/* obtener valor */
$stmt->fetch();
143
printf("%s is in district %s\n", $city, $district);
/* cerrar sentencia */
$stmt->close();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* ejecutar la consulta */
mysqli_stmt_execute($stmt);
/* obtener valor */
mysqli_stmt_fetch($stmt);
/* cerrar sentencia */
mysqli_stmt_close($stmt);
}
/* cerrar conexión */
mysqli_close($link);
?>
144
Ver también ¶
mysqli::query
mysqli_query
(PHP 5, PHP 7)
Descripción ¶
Nota:
En el caso de pasarle una sentencia a mysqli_query() que sea mayor del valor
de max_allowed_packet del servidor, los códigos de error retornados diferirán
dependiendo de si se está usando el Controlador Nativo de MySQL (mysqlnd) o
la Biblioteca Cliente de MySQL (libmysqlclient). El comportamiento es el
siguiente:
o mysqlnd en Linux retorna un código de error 1153. Este mensaje de
error significa que se tiene un paquete mayor
que max_allowed_packet bytes.
145
o mysqlnd en Windows retorna un código de error 2006. Este mensaje de
error significa que el servidor no está disponible.
o libmysqlclient en toda las plataformas retorna el código de error 2006.
Este mensaje de error significa que el servidor no está disponible.
Parámetros ¶
link
query
La string de la consulta.
resultmode
Valores devueltos ¶
Retorna FALSE en caso de error. Si una consulta del tipo SELECT, SHOW,
DESCRIBE o EXPLAIN es exitosa, mysqli_query() retornará un
objeto mysqli_result. Para otras consultas exitosas
de mysqli_query() retornará TRUE.
Historial de cambios ¶
Versión Descripción
Ejemplos ¶
146
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* comprobar la conexión */
if ($mysqli->connect_errno) {
printf("Falló la conexión: %s\n", $mysqli->connect_error);
exit();
}
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
147
TRUE) {
printf("Se creó con éxtio la tabla myCity.\n");
}
mysqli_close($link);
?>
mysqli::real_connect
mysqli_real_connect
(PHP 5, PHP 7)
148
Descripción ¶
Parámetros ¶
link
host
username
passwd
dbname
149
Si se proporciona, especificará la base de datos predeterminada a ser
usada para realizar consultas.
port
socket
Nota:
Especificar el parámetro socket no determinará explícitamente el tipo de
conexión a usar al conectarse al servidor MySQL. El modo de realizar la
conexión a la base de datos de MySQL está determinado por el
parámetro host.
flags
Banderas soportadas
Nobre Descripción
MYSQLI_CLIENT_COMPRESS Usar el protocolo de compresión
MYSQLI_CLIENT_FOUND_ROWS Devolver el número de filas coincidentes, no el núm
MYSQLI_CLIENT_IGNORE_SPACE Permitir espacios después de los nombres de funcio
los nombres de funciones sean palabras reservadas
MYSQLI_CLIENT_INTERACTIVE Permite interactive_timeout segundos (en vez de w
de inactividad antes de cerrar la conexión
MYSQLI_CLIENT_SSL Usar SSL (encriptación)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT Igual que MYSQLI_CLIENT_SSL, pero deshabilita l
certificado SSL proporcionado. Esto solamente es p
usan el Controlador Nativo de MySQL y MySQL 5.6
Nota:
Por razones de seguridad la bandera MULTI_STATEMENT no está
soportada en PHP. Si quiere ejecutar múltiples consultas use la
función mysqli_multi_query().
Historial de cambios ¶
Versión Descripción
150
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('Falló mysqli_init');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Falló la configuración de MYSQLI_OPT_CONNECT_TIMEOUT');
}
if (!$mysqli-
>real_connect('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd')) {
die('Error de conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
$mysqli->close();
?>
<?php
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Falló la configuración de MYSQLI_OPT_CONNECT_TIMEOUT'
);
}
151
{
die('Error de conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$bd->close();
?>
<?php
$enlace = mysqli_init();
if (!$enlace) {
die('Falló mysqli_init');
}
mysqli_close($enlace);
?>
152
Libmysqlclient utiliza el juego de caracteres predeterminado definido
en my.cnf o se puede establecer llamando mysqli_options() antes de
user mysqli_real_connect(), pero después de mysqli_init().
Ver también ¶
mysqli::real_escape_string
mysqli_real_escape_string
(PHP 5, PHP 7)
Descripción ¶
Esta función se usa para crear una cadena SQL legal que se puede usar en
una sentencia SQL. La cadena dada es codificada a una cadena SQL
escapada, tomando en cuenta el conjunto de caracteres actual de la conexión.
Precaución
153
Seguridad: el conjunto de caracteres
predeterminado
El conjunto de caracteres debe ser establecido a nivel del servidor, o con la
función mysqli_set_charset() de la API para que afecte
a mysqli_real_escape_string(). Véase la sección de conceptos sobre conjuntos
de caracteres para más información.
Parámetros ¶
link
escapestr
La cadena a escapar.
Los caracteres codificados son NUL (ASCII 0), \n, \r, \, ', ", y Control-Z.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$ciudad = $mysqli->real_escape_string($ciudad);
154
/* esta consulta con $ciudad escapada funcionará */
if ($mysqli-
>query("INSERT into miCiudad (Name) VALUES ('$ciudad')")) {
printf("%d fila insertada.\n", $mysqli->affected_rows);
}
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
mysqli_close($enlace);
?>
Error: 42000
1 fila insertada.
Notas ¶
Nota:
Para quienes estén acostumbrados a usar mysql_real_escape_string(), se ha
de observar que el argumento de mysqli_real_escape_string() difiere de lo que
espera mysql_real_escape_string(). El identificador enlace va primero
en mysqli_real_escape_string(), mientras que la cadena a escapar va primero
en mysql_real_escape_string().
155
Ver también ¶
mysqli::real_query
mysqli_real_query
(PHP 5, PHP 7)
Descripción ¶
Ejecuta una sola consulta contra la base de datos cuyo resultado puede ser
recuperado o almacenado mediante las
funciones mysqli_store_result() o mysqli_use_result().
Parámetros ¶
link
query
156
Valores devueltos ¶
Ver también ¶
mysqli::reap_async_query
mysqli_reap_async_query
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
157
Ver también ¶
mysqli::refresh
mysqli_refresh
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
link
options
Valores devueltos ¶
158
Ver también ¶
mysqli::release_savepoint
mysqli_release_savepoint
(PHP 5 >= 5.5.0, PHP 7)
Descripción ¶
name
Valores devueltos ¶
Ver también ¶
159
mysqli::rollback
mysqli_rollback
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
flags
name
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
5.5.0 Se añadieron los parámetros flags y name.
Ejemplos ¶
160
Ejemplo #1 Ejemplo de mysqli::rollback()
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* deshabilitar autocommit */
$mysqli->autocommit(FALSE);
/* insertar commit */
$mysqli->commit();
/* Revertir */
$mysqli->rollback();
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
161
/* deshabilitar autocommit */
mysqli_autocommit($link, FALSE);
/* insertar commit */
mysqli_commit($link);
/* Revertir */
mysqli_rollback($link);
mysqli_close($link);
?>
Ver también ¶
mysqli::rpl_query_type
162
mysqli_rpl_query_type
(PHP 5, PHP 7)
Descripción ¶
Advertencia
mysqli::savepoint
mysqli_savepoint
(PHP 5 >= 5.5.0, PHP 7)
Descripción ¶
163
Advertencia
name
Valores devueltos ¶
Ver también ¶
mysqli::select_db
mysqli_select_db
(PHP 5, PHP 7)
Descripción ¶
Selecciona la base de datos por defecto que se utilizará para realizar las
consultas, en la conexión activa.
Nota:
164
Esta función debería ser usada solo para cambiar la base de datos por defecto
para la conexión. Se puede seleccionar la base de datos por defecto en el
cuarto parámetro de la función mysqli_connect().
Parámetros ¶
link
dbname
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* comprueba la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->close();
?>
165
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* comprueba la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
mysqli_close($link);
?>
166
mysqli::send_query
mysqli_send_query
(PHP 5, PHP 7)
Descripción ¶
mysqli::set_charset
mysqli_set_charset
(PHP 5 >= 5.0.5, PHP 7)
Descripción ¶
167
Establece el conjunto de caracteres predeterminado a usar cuando se envían
datos desde y hacia el servidor de la base de datos.
Parámetros ¶
link
charset
Valores devueltos ¶
Notas ¶
Nota:
Para usar esta función en una plataforma Windows se necesita la biblioteca
cliente de MySQL version 4.1.11 o superior (para MySQL 5.0 se necesita 5.0.6
o superior).
Nota:
Esta es la mejor forma de cambiar el conjunto de caracteres. No se recomienda
usar mysqli_query() para establecerlo (como SET NAMES utf8). Véase la
sección Conceptos del conjunto de caracteres de MySQL para más
información.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "test
");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
168
printf("Conjunto de caracteres actual: %s\n", $mysqli-
>character_set_name());
}
$mysqli->close();
?>
<?php
$enlace = mysqli_connect('localhost', 'mi_usuario', 'mi_contraseña', '
test');
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
mysqli_close($enlace);
?>
mysqli::set_local_infile_default
169
mysqli_set_local_infile_default
(PHP 5, PHP 7)
mysqli::set_local_infile_default -
- mysqli_set_local_infile_default — Desestablece el gestor definido por el
usuario para un comando load local infile
Descripción ¶
mysqli_set_local_infile_default ( mysqli $link ) : void
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
Ver también ¶
mysqli::set_local_infile_handler
mysqli_set_local_infile_handler
(PHP 5, PHP 7)
Descripción ¶
170
mysqli::set_local_infile_handler ( mysqli $link , callable $read_func
) : bool
Parámetros ¶
link
read_func
stream
&buffer
buflen
&errormsg
Valores devueltos ¶
171
Ejemplos ¶
<?php
$db = mysqli_init();
$db->real_connect("localhost","root","","test");
echo $buffer;
return strlen($buffer);
}
echo "Entrada:\n";
$db->set_local_infile_handler("callme");
$db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
$db->set_local_infile_default();
echo "\nResultado:\n";
while ($fila = $res->fetch_assoc()) {
echo join(",", $fila)."\n";
}
?>
<?php
$db = mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
echo $buffer;
return strlen($buffer);
}
172
echo "Entrada:\n";
mysqli_set_local_infile_handler($db, "callme");
mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1"
);
mysqli_set_local_infile_default($db);
echo "\nResultado:\n";
while ($fila = mysqli_fetch_assoc($res)) {
echo join(",", $fila)."\n";
}
?>
Entrada:
23,foo
42,bar
Resultado:
23,FOO
42,BAR
Ver también ¶
mysqli::$sqlstate
mysqli_sqlstate
(PHP 5, PHP 7)
Descripción ¶
string $mysqli->sqlstate;
173
Estilo por procedimientos
Devuelve una cadena que contiene el código de error SQLSTATE del último
error. El código de error consiste en cinco caracteres. '00000' significa sin error.
Los valores son especificados por ANSI SQL y ODBC. Para una lista de los
posibles valores, véase » http://dev.mysql.com/doc/mysql/en/error-
handling.html.
Nota:
Observe que no todos los errores de MySQL están aún referenciados a
SQLSTATE. El valor HY000 (error general error) se utiliza para error no
referenciados.
Parámetros ¶
link
Valores devueltos ¶
Devuelve una cadena que contiene el código de error SQLSTATE del último
error. El código de error consiste en cinco caracteres. '00000' significa sin error.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* Comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$mysqli->close();
?>
174
<?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();
}
mysqli_close($enlace);
?>
mysqli::ssl_set
mysqli_ssl_set
(PHP 5, PHP 7)
Descripción ¶
175
mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $c
a , string $capath , string $cipher ) : bool
Usada para establece conexiones seguras usando SSL. Se debe llamar antes
a mysqli_real_connect(). Esta función no hará nada a menos que esté
habilitado el soporte para OpenSSL.
Parámetros ¶
link
key
cert
ca
capath
cipher
Valores devueltos ¶
Ver también ¶
176
mysqli_real_connect() - Abre una conexión a un servidor mysql
mysqli::stat
mysqli_stat
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
link
Valores devueltos ¶
Una cadena que describe el estado del servidor. FALSE si ocurrió un error.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
177
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$mysqli->close();
?>
<?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();
}
mysqli_close($enlace);
?>
mysqli::stmt_init
mysqli_stmt_init
(PHP 5, PHP 7)
178
Descripción ¶
Nota:
Cualquier llamada subsiguiente a cualquier función de mysqli_stmt fallará a
menos que se llame antes a mysqli_stmt_prepare().
Parámetros ¶
link
Valores devueltos ¶
Returns an object.
Ver también ¶
mysqli::store_result
mysqli_store_result
(PHP 5, PHP 7)
Descripción ¶
179
mysqli::store_result ([ int $option ] ) : mysqli_result
Parámetros ¶
link
option
Opciones válidas
Nombre Descripción
MYSQLI_STORE_RESULT_COPY_DATA Copiar los resultados desde el búfer interno de mysqlnd a
variables de PHP. Por defecto, mysqlnd usará un lógica de
referencia para evitar copiar y duplicar resultados
contenidos en memoria. Para ciertos conjuntos de
resultados con filas muy pequeñas, por ejemplo, la
estrategia de copia puede reducir el uso total de memoria
debido a que las variables de PHP de contienen resultados
podrían ser liberadas antes (disponible con mysqlnd
solamente, desde PHP 5.6.0)
Valores devueltos ¶
Nota:
mysqli_store_result() devuelve FALSE en caso de que la consulta no devuelve
un conjunto de resultados (si la consulta era, por ejemplo, una sentencia
INSERT). Esta función también devuelve FALSE si la lectura del conjunto de
resultados falla. Se puede comprobar si se ha obtenido un error comprobando
si mysqli_error() no devuelve una cadena vacía, si mysqli_errno() devuelve un
valor distinto de cero, o si mysqli_field_count() devuelve un valor distinto de
cero. Otra posible razón para que esta función devuelva FALSE después de una
llamada con éxito a mysqli_query() puede ser un conjunto de resultados
demasiado grande (no es posible asignarle memoria).
180
Si mysqli_field_count() devuelve un valor distinto de cero, la sentencia debería
haber producido un conjunto de resultados no vacío.
Notas ¶
Nota:
Aunque es una buena práctica liberar la memoria usada por los resultados de
una consulta usando la función mysqli_free_result(), al transferir conjuntos de
resultados grandes usando la función mysqli_store_result() esto se convierte en
particularmente importante.
Ejemplos ¶
Véase mysqli_multi_query().
Ver también ¶
mysqli::$thread_id
mysqli_thread_id
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->thread_id;
Nota:
El ID del hilo es asignado basándose en una conexión-por-conexión. Por lo
tanto, si la conexión se pierde y se restablece se asignará un nuevo ID de hio.
181
Para destruir una consulta en ejecución se puede usar el comando SQL KILL
QUERY id_proceso.
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* Destruir la conexión */
$mysqli->kill($id_hilo);
/* cerrar la conexión */
$mysqli->close();
?>
<?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());
182
exit();
}
/* Destruir la conexión */
mysqli_kill($enlace, $id_hilo);
/* cerrar la conexión */
mysqli_close($enlace);
?>
mysqli::thread_safe
mysqli_thread_safe
(PHP 5, PHP 7)
Descripción ¶
Valores devueltos ¶
183
mysqli::use_result
mysqli_use_result
(PHP 5, PHP 7)
Descripción ¶
Nota:
La función mysqli_use_result() no transfiere el conjunto de resultados por
completo desde la base de datos y por lo tanto no se pueden usar funciones
como mysqli_data_seek() para mover una fila en particular dentro del conjunto.
Para usar esta funcionalidad, el conjunto de resultados debe ser almacenado
usando mysqli_store_result(). No se debería usar mysqli_use_result() si se
realizan muchos procesos en el lado del cliente, ya que ocupará el servidor e
impedirá que otros hilos actualicen cualquier table desde la cuales se están
obteniendo los datos.
Valores devueltos ¶
Ejemplos ¶
184
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* Comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* close connection */
$mysqli->close();
?>
<?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();
}
185
}
mysqli_free_result($resultado);
}
/* imprimir un separador */
if (mysqli_more_results($enlace)) {
printf("-----------------\n");
}
} while (mysqli_next_result($enlace));
}
/* close connection */
mysqli_close($enlace);
?>
mi_usuario@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer
Ver también ¶
mysqli::$warning_count
mysqli_warning_count
(PHP 5, PHP 7)
Descripción ¶
int $mysqli->warning_count;
186
Devuelve el número de mensajes de advertencia de la última consulta en la
conexión a la base de datos.
Nota:
Para recuperar los mensajes de advertencia que puede utilizar el comando
SQL SHOW WARNINGS [limit row_count].
Parámetros ¶
link
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query($query);
if ($mysqli->warning_count) {
if ($result = $mysqli->query("SHOW WARNINGS")) {
$row = $result->fetch_row();
printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
$result->close();
}
}
/* close connection */
$mysqli->close();
?>
187
Estilo por procedimientos
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, $query);
if (mysqli_warning_count($link)) {
if ($result = mysqli_query($link, "SHOW WARNINGS")) {
$row = mysqli_fetch_row($result);
printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
mysqli_free_result($result);
}
}
/* close connection */
mysqli_close($link);
?>
188
La clase mysqli_stmt ¶
(PHP 5, PHP 7)
Introducción ¶
Sinopsis de la Clase ¶
mysqli_stmt {
/* Propiedades */
int $affected_rows;
int $errno;
array $error_list;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Métodos */
__construct ( mysqli $link [, string $query ] )
189
result_metadata ( void ) : mysqli_result
send_long_data ( int $param_nr , string $data ) : bool
store_result ( void ) : bool
}
Tabla de contenidos ¶
190
mysqli_stmt::store_result — Transfiere un conjunto de resultados desde una
sentencia preparada
mysqli_stmt::$affected_rows
mysqli_stmt_affected_rows
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->affected_rows;
Esta función sólo funciona con las consultas que actualizan una tabla. Con el
fin de obtener el número de filas de una consulta SELECT,
usar mysqli_stmt_num_rows() en su lugar.
Parámetros ¶
stmt
Valores devueltos ¶
Nota:
191
Si el número de filas afectadas es mayor que el valor entero maximo de PHP,
el número de filas afectadas se obtiene como una cadena.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_clave", "world");
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE
?";
/* preparar sentencia */
if ($stmt = $mysqli->prepare($query)) {
/* ejecutar sentencia */
$stmt->execute();
/* cerrar sentencia */
$stmt->close();
}
/* cerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "mi_usuario", "my_clave", "world")
;
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
192
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE
?";
/* preparar sentencia */
if ($stmt = mysqli_prepare($link, $query)) {
/* ejecutar sentencia */
mysqli_stmt_execute($stmt);
/* cerrar sentencia */
mysqli_stmt_close($stmt);
}
/* cerrar conexión */
mysqli_close($link);
?>
filas insertadas: 17
Ver también ¶
mysqli_stmt::attr_get
mysqli_stmt_attr_get
(PHP 5, PHP 7)
Descripción ¶
193
Estilo por procedimientos
Parámetros ¶
stmt
attr
Valores devueltos ¶
mysqli_stmt::attr_set
mysqli_stmt_attr_set
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
stmt
194
Sólo estilo por procediminetos: Un identificador de declaraciones
devuelto por mysqli_stmt_init().
attr
Valores de atributos
Carácter Descripción
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH Si se establece
a TRUE, mysqli_stmt_store_result() actualizará el
valor de metadato de MYSQL_FIELD->max_length.
Si usa la
opción MYSQLI_STMT_ATTR_CURSOR_TYPE con MYSQLI_CURSOR
_TYPE_READ_ONLY, un cursor es abierto para la sentencia cuando se
invoca mysqli_stmt_execute(). Si ya hay un cursor abierto desde la
llamada anterior de mysqli_stmt_execute(), se cierra el cursor antes de
abrir uno nuevo. mysqli_stmt_reset() también cierra cualquier cursor
abierto antes de preparar la sentencia para su re-
ejecución. mysqli_stmt_free_result() cierra cualquier cursor abierto.
mode
Ver también ¶
» Connector/MySQL mysql_stmt_attr_set()
195
mysqli_stmt::bind_param
mysqli_stmt_bind_param
(PHP 5, PHP 7)
Descripción ¶
Nota:
Si el tamaño de los datos de una variable excede el tamaño máximo del
paquete permitido (max_allowed_packet), usted tiene que
especificar b en types y usar mysqli_stmt_send_long_data() para enviar los
datos en paquetes.
Nota:
Debe de tener cuidado cuando use mysqli_stmt_bind_param() en conjunción
con call_user_func_array(). Tenga en cuenta
que mysqli_stmt_bind_param() requiere de parámetros que se pasan por
referencia, mientras que call_user_func_array() puede aceptar como parámetro
una lista de variables que pueden representar referencias o valores.
Parámetros ¶
stmt
types
Una cadena que contiene uno o más caracteres que especifican los
tipos para el correspondiente enlazado de variables:
196
Especificación del tipo de caracteres
Carácter Descripción
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/* verificar conexión */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
$stmt = $mysqli-
>prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;
197
/* cierra la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world')
;
/* verificar conexión */
if (!$link) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;
/* cierra la conexión */
mysqli_close($link);
?>
1 Fila insertada.
1 Fila borrada.
Ver también ¶
198
mysqli_prepare() - Prepara una sentencia SQL para su ejecución
mysqli_stmt_send_long_data() - Enviar datos en bloques
mysqli_stmt_errno() - Devuelve el código de error de la llamada de la sentencia
más reciente
mysqli_stmt_error() - Devuelve una descripción en forma de string del último
error de una sentencia
mysqli_stmt::bind_result
mysqli_stmt_bind_result
(PHP 5, PHP 7)
Descripción ¶
Nota:
Observe que todas las columnas deben ser vinculadas después de llamar
a mysqli_stmt_execute() y antes de llamar a mysqli_stmt_fetch(). Dependiendo
de los tipos de columna las variables pueden cambiar silenciosamente al tipo
de PHP correspondiente.
199
Parámetros ¶
stmt
var1
La variable a vincular.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* sentencia preparada */
if ($sentencia = $mysqli-
>prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
$sentencia->execute();
/* obtener valores */
while ($sentencia->fetch()) {
printf("%s %s\n", $col1, $col2);
}
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
200
/* comprobar la conexión */
if (!$enlace) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* sentencia preparada */
if ($sentencia = mysqli_prepare($enlace, "SELECT Code, Name FROM Count
ry ORDER BY Name LIMIT 5")) {
mysqli_stmt_execute($sentencia);
/* obtener valores */
while (mysqli_stmt_fetch($sentencia)) {
printf("%s %s\n", $col1, $col2);
}
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra
Ver también ¶
201
mysqli_stmt::close
mysqli_stmt_close
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
Ver también ¶
add a note
User Contributed Notes 1 note
202
mysqli_stmt::__construct
(PHP 5, PHP 7)
Descripción ¶
mysqli_stmt::__construct ( mysqli $link [, string $query ] )
Nota:
En general, se debería utilizar mysqli_prepare() o mysqli_stmt_init() para crear
un objeto mysqli_stmt, en lugar de instanciar directamente el objeto con new
mysqli_stmt. Este método (y la capacidad de instanciar directamente
objetos mysqli_stmt) podrían quedar obsoletos y ser eliminados en el futuro.
Parámetros ¶
link
query
Ver también ¶
mysqli_stmt::data_seek
mysqli_stmt_data_seek
(PHP 5, PHP 7)
203
Descripción ¶
Parámetros ¶
stmt
offset
Valores devueltos ¶
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* execute consulta */
$sentencia->execute();
204
$sentencia->bind_result($nombre, $código);
/* almacenar el resultado */
$sentencia->store_result();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$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();
}
/* execute consulta */
mysqli_stmt_execute($sentencia);
/* almacenar el resultado */
mysqli_stmt_store_result($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
205
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
mysqli_stmt::$errno
mysqli_stmt_errno
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->errno;
Los números de los mensajes de error del cliente están listados en el fichero de
cabecera errmsg.h de MySQL, los números de los mensajes de error del
servidor están listados en mysqld_error.h. En la distribución original de MySQL
se puede encontrar una lista completa de los mensajes de error y los números
de los errores en el fichero Docs/mysqld_error.txt.
Parámetros ¶
stmt
206
Sólo estilo por procediminetos: Un identificador de declaraciones
devuelto por mysqli_stmt_init().
Valores devueltos ¶
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCountry");
/* ejecutar la consulta */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$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());
207
exit();
}
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCountry");
/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Error: 1146.
Ver también ¶
mysqli_stmt::$error_list
mysqli_stmt_error_list
(PHP 5 >= 5.4.0, PHP 7)
208
Descripción ¶
array $mysqli_stmt->error_list;
Parámetros ¶
stmt
Valores devueltos ¶
Una lista de errores, cada uno como un array asociativo que contiene el errno,
error, y sqlstate.
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCountry");
/* ejecutar la consulta */
$sentencia->execute();
echo "Error:\n";
209
print_r($sentencia->error_list);
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$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();
}
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCountry");
/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);
echo "Error:\n";
print_r(mysql_stmt_error_list($sentencia));
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Array
(
[0] => Array
(
[errno] => 1146
[sqlstate] => 42S02
[error] => Table 'world.myCountry' doesn't exist
)
210
)
Ver también ¶
mysqli_stmt::$error
mysqli_stmt_error
(PHP 5, PHP 7)
Descripción ¶
string $mysqli_stmt->error;
Parámetros ¶
stmt
Valores devueltos ¶
211
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCountry");
/* ejecutar la sentencia */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$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();
}
212
if ($sentencia = mysqli_prepare($enlace, $consulta)) {
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCountry");
/* ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
mysqli_stmt::execute
mysqli_stmt_execute
(PHP 5, PHP 7)
Descripción ¶
213
Ejecuta una consulta que ha sido previamente preparada usando la
función mysqli_prepare(). Cuando se ejecutó cualquier marcador de parámetro
que existe, será automáticamente reemplazado con los datos apropiados.
Nota:
Al usar mysqli_stmt_execute(), se debe usar la
función mysqli_stmt_fetch() para obtener los datos antes de realizar cualquier
consulta adicional.
Parámetros ¶
stmt
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';
/* Ejecutar la sentencia */
$sentencia->execute();
214
$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';
/* Ejecutar la sentencia */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCity");
/* cerrar la conexión */
$mysqli->close();
?>
<?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();
}
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';
/* Ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
$val1 = 'Bordeaux';
215
$val2 = 'FRA';
$val3 = 'Aquitaine';
/* Ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCity");
/* cerrar la conexión */
mysqli_close($enlace);
?>
Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)
Ver también ¶
mysqli_stmt::fetch
mysqli_stmt_fetch
(PHP 5, PHP 7)
216
Descripción ¶
Nota:
Observe que todas las columnas deben estar vinculadas por la aplicación antes
de llamar a mysqli_stmt_fetch().
Nota:
Los datos son transferidos sin almacenarlos en buffer sin llamar
a mysqli_stmt_store_result(), la cual puede disminuir el rendimiento (pero
reduce el coste de memoria).
Parámetros ¶
stmt
Valores devueltos ¶
Valores devueltos
Valor Descripción
TRUE Éxito. Los datos se han obtenido
FALSE Ocurrió un error
NULL No existen más filas/datos u ocurrió un truncamiento de los datos
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
217
150,5";
if ($sentencia = $mysqli->prepare($consulta)) {
/* ejecutar la sentencia */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?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();
}
/* ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
218
mysqli_close($link);
?>
Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)
Ver también ¶
mysqli_stmt::$field_count
mysqli_stmt_field_count
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->field_count;
219
mysqli_stmt::free_result
mysqli_stmt_free_result
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
Ver también ¶
mysqli_stmt::get_result
mysqli_stmt_get_result
(PHP 5 >= 5.3.0, PHP 7)
220
mysqli_stmt::get_result -- mysqli_stmt_get_result — Obtiene un conjunto de
resultados de una sentencia preparada
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
Ejemplos ¶
<?php
if($mysqli->connect_error)
{
die("$mysqli->connect_errno: $mysqli->connect_error");
}
$sentencia = $mysqli->stmt_init();
if(!$sentencia->prepare($consulta))
{
print "Falló la preparación de la sentencia\n";
221
}
else
{
$sentencia->bind_param("s", $continente);
foreach($array_continentes as $continente)
{
$sentencia->execute();
$resultado = $sentencia->get_result();
while ($fila = $resultado->fetch_array(MYSQLI_NUM))
{
foreach ($fila as $f)
{
print "$f ";
}
print "\n";
}
}
}
$sentencia->close();
$mysqli->close();
?>
<?php
if (!$enlace)
{
$error = mysqli_connect_error();
$errno = mysqli_connect_errno();
print "$errno: $error\n";
exit();
}
$sentencia = mysqli_stmt_init($enlace);
if(!mysqli_stmt_prepare($sentencia, $consulta))
{
print "Falló la preparación de la sentencia\n";
}
else
{
mysqli_stmt_bind_param($stmt, "s", $continente);
222
foreach($array_continentes as $continente)
{
mysqli_stmt_execute($sentencia);
$resultado = mysqli_stmt_get_result($sentencia);
while ($fila = mysqli_fetch_array($resultado, MYSQLI_NUM))
{
foreach ($fila as $f)
{
print "$f ";
}
print "\n";
}
}
}
mysqli_stmt_close($sentencia);
mysqli_close($enlace);
?>
mysqli_stmt::get_warnings
mysqli_stmt_get_warnings
(PHP 5 >= 5.1.0, PHP 7)
223
Descripción ¶
mysqli_stmt::$insert_id
mysqli_stmt_insert_id
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->insert_id;
mysqli_stmt::more_results
mysqli_stmt_more_results
(PHP 5 >= 5.3.0, PHP 7)
224
mysqli_stmt::more_results -- mysqli_stmt_more_results — Comprobar si
existen más resultados de una consulta de consultas múltiples
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
Ver también ¶
mysqli_stmt::next_result
mysqli_stmt_next_result
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
Errores/Excepciones ¶
mysqli_stmt::$num_rows
mysqli_stmt_num_rows
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->num_rows;
226
utiliza mysqli_stmt_store_result() para almacenar en buffer el conjunto de
resultados completo en el gestor de sentencia.
Parámetros ¶
stmt
Valores devueltos ¶
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* ejecutar la consulta */
$sentencia->execute();
/* almacenar el resultado */
$sentencia->store_result();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
227
<?php
/* Abrir una conexión */
$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();
}
/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);
/* almacenar el resultado */
mysqli_stmt_store_result($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
228
mysqli_stmt::$param_count
mysqli_stmt_param_count
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_stmt->param_count;
Parámetros ¶
stmt
mysqli_stmt::prepare
mysqli_stmt_prepare
(PHP 5, PHP 7)
Descripción ¶
229
mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query ) : bool
Prepara una consulta the SQL apuntada por la consulta de cadena terminada
en null.
Nota:
En el caso de que se pase una sentencia a mysqli_stmt_prepare() que sea más
grande que max_allowed_packet del servidor, los códigos de error devueltos
serán diferentes, dependiendo de si se usa el Controlador Nativo de MysQL
(mysqlnd) o la biblioteca Cliente de MySQL (libmysqlclient). El comportamiento
es como sigue:
o mysqlnd en Linux devuelve un código de error 1153. El mensaje de error
significa obtenido un paquete mas grande
que max_allowed_packet bytes.
o mysqlnd en Windows devuelve un código de error 2006. Este mensaje
de error significa el servidor se ha ido.
o libmysqlclient en todas las plataformas devuelve un código de error
2006. Este mensaje de error significa el servidor se ha ido.
Parámetros ¶
stmt
query
Nota:
No se debería añadir un punto y coma terminal o \g a la sentencia.
Nota:
Los marcadores únicamente son legales en ciertos lugares de las
sentencias SQL. Por ejemplo, están permitidos en la lista de VALUES()
de una sentencia INSERT (para especificar los valores de las columnas
de una fila), o en una comparación en una cláusula WHERE para
especificar un valor de comparación.
230
operandos de un operador binario como signo igual =. La última
restricción es necesaria debido a que sería imposible determinar el tipo
de parámetro. En general, los parámetros son legales únicamente en
sentencias de Lenguaje de Manipulación de Datos (DML), y no en
sentencias de Lenguaje de Definición de Datos (DDL).
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$ciudad = "Amersfoort";
/* ejecutar la consulta */
$sentencia->execute();
/* obtener el valor */
$sentencia->fetch();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
231
<?php
$enlace = mysqli_connect("localhost", "my_usuario", "mi_contraseña", "
world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$ciudad = "Amersfoort";
/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);
/* obtener el valor */
mysqli_stmt_fetch($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
232
mysqli_stmt_close() - Cierra una sentencia preparada
mysqli_stmt::reset
mysqli_stmt_reset
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
stmt
Valores devueltos ¶
233
Ver también ¶
mysqli_stmt::result_metadata
mysqli_stmt_result_metadata
(PHP 5, PHP 7)
Descripción ¶
Nota:
Este puntero del conjunto de resultados puede ser pasado como parámetro a
cualquier función basada en campos que procese los metadatos del conjunto
de resultados, tales como:
o mysqli_num_fields()
o mysqli_fetch_field()
o mysqli_fetch_field_direct()
o mysqli_fetch_fields()
o mysqli_field_count()
o mysqli_field_seek()
o mysqli_field_tell()
o mysqli_free_result()
234
Nota:
El cojunto de resultados devuelto por mysqli_stmt_result_metadata() contiene
únicamente metadatos. No contiene ningún resultado de filas. Las filas se
obtienen usando el gestor de sentencias con mysqli_stmt_fetch().
Parámetros ¶
stmt
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "test
");
$mysqli-
>query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
test");
235
mysqli_query($enlace, "CREATE TABLE friends (id int, name varchar(20))
");
/* cerrar la conexión */
mysqli_close($enlace);
?>
Ver también ¶
mysqli_stmt::send_long_data
mysqli_stmt_send_long_data
(PHP 5, PHP 7)
Descripción ¶
236
mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , strin
g $data ) : bool
Parámetros ¶
stmt
param_nr
Indica qué parámetro asociar con los datos. Los parámetros son
numerados comenzando por el 0.
data
Valores devueltos ¶
Ejemplos ¶
<?php
$sentencia = $mysqli-
>prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$sentencia->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
$sentencia->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$sentencia->execute();
?>
Ver también ¶
237
mysqli_stmt::$sqlstate
mysqli_stmt_sqlstate
(PHP 5, PHP 7)
Descripción ¶
string $mysqli_stmt->sqlstate;
Parámetros ¶
stmt
Valores devueltos ¶
Devuelve una cadena que contiene el código de error SQLSTATE del último
error. El código de error consiste en cinco caracteres. '00000' significa sin error.
Notas ¶
Nota:
Observe que aún no están referenciados todos los errores de MySQL a
SQLSTATE. El valor HY000 (error general) se utiliza para errores no
referenciados.
Ejemplos ¶
238
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCountry");
/* ejecutar la sentencia */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
/* Abrir una conexión */
$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();
}
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCountry");
239
/* ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Error: 42S02.
Ver también ¶
mysqli_stmt::store_result
mysqli_stmt_store_result
(PHP 5, PHP 7)
Descripción ¶
240
completo en el cliente, por lo que las llamadas subsuguientes
a mysqli_stmt_fetch() devolverán datos almacenados en buffer.
Nota:
No es necesario llamar a mysqli_stmt_store_result() para otras consultas, pero
si se hace, no perjudicará al rendimiento en ningún caso. Se puede detectar si
la consulta produjo un conjunto de resultados comprobando
si mysqli_stmt_result_metadata() devolvió NULL.
Parámetros ¶
stmt
Valores devueltos ¶
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* ejecutar la consulta */
$sentencia->execute();
/* almacenar el resultado */
$sentencia->store_result();
/* liberar el resultado */
$sentencia->free_result();
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
241
$mysqli->close();
?>
<?php
/* Open a connection */
/* Abrir una conexión */
$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();
}
/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);
/* almacenar el resultado */
mysqli_stmt_store_result($sentencia);
/* liberar el resultado */
mysqli_stmt_free_result($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
242
La clase mysqli_result ¶
(PHP 5, PHP 7)
Introducción ¶
Historial de cambios
Historial de cambios
Versión Descripción
Sinopsis de la Clase ¶
mysqli_result implements Traversable {
/* Propiedades */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Métodos */
data_seek ( int $offset ) : bool
243
mysqli_result::$current_field
mysqli_field_tell
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_result->current_field ;
Parámetros ¶
result
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_ususario", "mi_contraseña", "mun
do");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5"
244
;
if ($result = $mysqli->query($query)) {
/* ccerrar conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5"
;
245
/* cerrar conexión */
mysqli_close($link);
?>
Columna 1:
Nombre: Name
Tabla: Country
max. Long: 11
Banderas: 1
Tipo: 254
Columna 2:
Nombre: SurfaceArea
Tabla: Country
max. Long: 10
Banderas: 32769
Tipo: 4
Ver también ¶
mysqli_result::data_seek
mysqli_data_seek
(PHP 5, PHP 7)
Descripción ¶
246
La función mysqli_data_seek() salta a la posición offset de un puntero de
resultado.
Parámetros ¶
result
offset
Valores devueltos ¶
Notas ¶
Nota:
Sólo se puede usar esta función con resultados almacenados que se obtengan
mediante el uso de mysqli_store_result() o de mysqli_query().
Ejemplos ¶
<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "mund
o");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* obtener fila */
$row = $result->fetch_row();
/* librar resultados */
$result->close();
}
247
/* cerrar conexión */
$mysqli->close();
?>
<?php
/* Abrir conexión */
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "mu
ndo");
/* comprobar conexión */
if (!$link) {
printf("Conexión faillida: %s\n", mysqli_connect_error());
exit();
}
/* obtener fila */
$row = mysqli_fetch_row($result);
/* liberar resultado */
mysqli_free_result($result);
}
/* cerrar conexión */
mysqli_close($link);
?>
248
mysqli_result::fetch_all
mysqli_fetch_all
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
Parámetros ¶
result
resulttype
Valores devueltos ¶
249
resultado. Por tanto, si se necesita recorrer un resultado, será necesario un
bucle que minimice el impacto en rendimiento. Por esta razón, se aconseja que
sólo se use mysqli_fetch_all() en aquellas situaciones en que el resultado se
tenga que enviar a otra capa o nivel para que lo procese.
Ver también ¶
mysqli_result::fetch_array
mysqli_fetch_array
(PHP 5, PHP 7)
Descripción ¶
Nota: Los nombres de los campos devueltos por esta función son sensibles a
mayúsculas y minúsculas.
Nota: Esta función define campos NULOS al valor NULL de PHP.
250
Si dos o más columnas del resultado tienen el mismo nombre de campo, la
última columna tomará precedencia y sobrescribirá la información anterior.
Para acceder a múltiples columnas con el mismo nombre, hay que usar la
versión numéricamente indexada de la fila.
Parámetros ¶
result
resulttype
Este parámetro opcional es una constante que indica qué tipo de array
debiera generarse con la información de la fila actual. Los valores
posibles para este parámetro son las
constantes MYSQLI_ASSOC, MYSQLI_NUM, o MYSQLI_BOTH.
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión failed: %s\n", $mysqli->connect_error);
exit();
}
/* array numérico */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);
/* array asociativo */
$row = $result->fetch_array(MYSQLI_ASSOC);
251
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* array numérico */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);
/* array asociativo */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* cerrar la conexión */
mysqli_close($link);
?>
Kabul (AFG)
Qandahar (AFG)
Herat (AFG)
Ver también ¶
252
mysqli_fetch_object() - Devuelve la fila actual de un conjunto de resultados
como un objeto
mysqli_query() - Realiza una consulta a la base de datos
mysqli_data_seek() - Ajustar el puntero de resultado a una fila arbitraria del
resultado
mysqli_result::fetch_assoc
mysqli_fetch_assoc
(PHP 5, PHP 7)
Descripción ¶
Nota: Los nombres de los campos devueltos por esta función son sensibles a
mayúsculas y minúsculas.
Nota: Esta función define campos NULOS al valor NULL de PHP.
Parámetros ¶
result
Valores devueltos ¶
253
Si dos o más columnas del resultado tienen el mismo nombre de campo, la
última columna tomará precedencia. Para acceder a la/s otra/s columna/s con
el mismo nombre, es necesario acceder al resultado ya sea usando los índices
numéricos mediante mysqli_fetch_row(), ya sea añadiéndole alias a los
campos.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* verificar la conexión */
if ($mysqli->connect_errno) {
printf("Conexión fallida: %s\n", $mysqli->connect_error);
exit();
}
if ($resultado = $mysqli->query($consulta)) {
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "
world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
254
/* obtener array asociativo */
while ($row = mysqli_fetch_assoc($resultado)) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
/* cerrar la conexión */
mysqli_close($link);
?>
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)
<?php
$c = mysqli_connect('127.0.0.1','user', 'pass');
echo "\n==================\n";
?>
'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'
==================
'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'
255
Ver también ¶
mysqli_result::fetch_field_direct
mysqli_fetch_field_direct
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
result
fieldnr
256
Valores devueltos ¶
Atributo Descripción
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($resultado = $mysqli->query($consulta)) {
257
printf("Longitud máx.: %d\n", $info_campo->max_length);
printf("Banderas: %d\n", $info_campo->flags);
printf("Tipo: %d\n", $info_campo->type);
$resultado->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?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();
}
mysqli_free_result($resultado);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Nombre: SurfaceArea
Tabla: Country
Longitud máx.: 10
Banderas: 32769
Tipo: 4
Ver también ¶
258
mysqli_fetch_fields() - Devuelve un array de objetos que representan los
campos de un conjunto de resultados
mysqli_result::fetch_field
mysqli_fetch_field
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
result
Valores devueltos ¶
Propiedad Descripción
259
Propiedades del objeto
Propiedad Descripción
def Reservado para el valor por omisión, por ahora es siempre ""
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5"
;
if ($result = $mysqli->query($query)) {
/* cerrar la conexión */
260
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar la conexión *
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5"
;
/* cerrar la conexión */
mysqli_close($link);
?>
Nombre: Name
Tabla: Country
Largo max: 11
Banderas: 1
Tipo: 254
Nombre: SurfaceArea
Tabla: Country
Largo max: 10
Banderas: 32769
Tipo: 4
Ver también ¶
261
mysqli_field_seek() - Establecer el puntero del resultado al índice del campo
especificado
mysqli_result::fetch_fields
mysqli_fetch_fields
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
result
Valores devueltos ¶
Propiedad Descripción
262
Propiedades del objeto
Propiedad Descripción
length El ancho del campo, en bytes, como se especificó en la definición de la tabla. Observe que este número
del valor de la definición de la tabla (caracteres), dependiendo del conjunto de caracteres que se empl
conjunto de caracteres utf8 tiene 3 bytes por carácter, por lo que varchar(10) devolverá una longitud d
aunque devuelve 10 para latin1 (10*1).
Ejemplos ¶
<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", $mysqli->connect_error);
exit();
}
echo "======================\n";
echo "Conjunto de caracteres: $conj_caract\n";
echo "======================\n";
if ($resultado = $mysqli->query($consulta)) {
263
printf("Tabla: %s\n", $valor->table);
printf("Longitud máx.: %d\n", $valor->max_length);
printf("Longitud: %d\n", $valor->length);
printf("Nº conj. caract.: %d\n", $valor->charsetnr);
printf("Banderas: %d\n", $valor->flags);
printf("Tipo: %d\n\n", $valor->type);
}
$resultado->free();
}
}
$mysqli->close();
?>
<?php
$enlace = mysqli_connect("127.0.0.1", "mi_usuario", "mi_contraseña", "
sakila");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
echo "===============================\n";
echo "Conjunto de caracteres: $conj_caract\n";
echo "===============================\n";
264
mysqli_close($enlace);
?>
===============================
Conjunto de caracteres: latin1
===============================
Nombre: actor_id
Tabla: actor
Longitud máx.: 3
Longitud: 5
Nº conj. caract.: 63
Banderas: 49699
Tipo: 2
Nombre: last_name
Tabla: actor
Longitud máx.: 12
Longitud: 45
Nº conj. caract.: 8
Banderas: 20489
Tipo: 253
===============================
Conjunto de caracteres: utf8
===============================
Nombre: actor_id
Tabla: actor
Longitud máx.: 3
Longitud: 5
Nº conj. caract.: 63
Banderas: 49699
Tipo: 2
Nombre: last_name
Tabla: actor
Longitud máx.: 12
Longitud: 135
Nº conj. caract.: 33
Banderas: 20489
Ver también ¶
265
mysqli_result::fetch_object
mysqli_fetch_object
(PHP 5, PHP 7)
Descripción ¶
Parámetros ¶
result
class_name
params
266
Valores devueltos ¶
Nota: Los nombres de los campos devueltos por esta función son sensibles a
mayúsculas y minúsculas.
Nota: Esta función define campos NULOS al valor NULL de PHP.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($resultado = $mysqli->query($consulta)) {
/* cerrar la conexión */
$mysqli->close();
?>
<?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();
}
267
if ($resultado = mysqli_query($enlace, $consulta)) {
/* cerrar la conexión */
mysqli_close($enlace);
?>
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)
Ver también ¶
mysqli_result::fetch_row
mysqli_fetch_row
(PHP 5, PHP 7)
Descripción ¶
268
Estilo por procedimientos
Parámetros ¶
result
Valores devueltos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($resultado = $mysqli->query($consulta)) {
/* cerrar la conexión */
$mysqli->close();
?>
269
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();
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)
Ver también ¶
270
mysqli_result::$field_count
mysqli_num_fields
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_result->field_count;
Parámetros ¶
result
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli-
>query("SELECT * FROM City ORDER BY ID LIMIT 1")) {
271
/* determinar el número de campos del resultset */
$field_cnt = $result->field_count;
/* cerrar el resultset */
$result->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar el resultset */
mysqli_free_result($result);
}
/* cerrar la conexión */
mysqli_close($link);
?>
272
mysqli_result::field_seek
mysqli_field_seek
(PHP 5, PHP 7)
Descripción ¶
Nota:
Para buscar al principio de una fila, pase un valor de índice de cero.
Parámetros ¶
result
fieldnr
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "worl
d");
273
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if ($resultado = $mysqli->query($consulta)) {
$resultado->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?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();
}
274
mysqli_free_result($resultado);
}
/* cerrar la conexión */
mysqli_close($enlace);
?>
Nombre: SurfaceArea
Tabla: Country
Longitud máx.: 10
Banderas: 32769
Tipo: 4
Ver también ¶
mysqli_result::free
mysqli_result::close
mysqli_result::free_result
mysqli_free_result
(PHP 5, PHP 7)
Descripción ¶
275
Libera la memoria asociada al resultado.
Nota:
Siempre se debe liberar el resultado con mysqli_free_result(), cuando el objeto
del resultado ya no es necesario.
Parámetros ¶
result
Valores devueltos ¶
Ver también ¶
mysqli_result::$lengths
mysqli_fetch_lengths
(PHP 5, PHP 7)
Descripción ¶
array $mysqli_result->lengths;
276
La función mysqli_fetch_lengths() retorna un array que contiene los largos de
cada columna de la fila actual dentro del resultset·
Parámetros ¶
result
Valores devueltos ¶
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli->query($query)) {
$row = $result->fetch_row();
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
277
;
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$row = mysqli_fetch_row($result);
/* cerrar la conexión */
mysqli_close($link);
?>
mysqli_result::$num_rows
mysqli_num_rows
(PHP 5, PHP 7)
278
Descripción ¶
int $mysqli_result->num_rows;
Parámetros ¶
result
Valores devueltos ¶
Nota:
Si el número de filas es mayor al máximo valor de PHP_INT_MAX, el número será
retornado como un string.
Ejemplos ¶
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli-
>query("SELECT Code, Name FROM Country ORDER BY Name")) {
279
/* cerrar el resultset */
$result->close();
}
/* cerrar la conexión */
$mysqli->close();
?>
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
;
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
/* cerrar el resulset */
mysqli_free_result($result);
}
/* cerrar la conexión */
mysqli_close($link);
?>
280
La clase mysqli_driver ¶
(PHP 5, PHP 7)
Introducción ¶
MySQLi Driver.
Sinopsis de la Clase ¶
mysqli_driver {
/* Propiedades */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public bool $reconnect ;
public int $report_mode ;
/* Métodos */
embedded_server_end ( void ) : void
embedded_server_start ( bool $start , array $arguments , array $groups ) : bool
}
Propiedades ¶
client_info
client_version
La versión de Cliente
driver_version
embedded
reconnect
281
report_mode
Tabla de contenidos ¶
mysqli_driver::embedded_server_end
mysqli_embedded_server_end
(PHP 5, PHP 7)
mysqli_driver::embedded_server_end -
- mysqli_embedded_server_end — Detener el servidor incrustado
Descripción ¶
282
mysqli_driver::embedded_server_start
mysqli_embedded_server_start
(PHP 5, PHP 7)
mysqli_driver::embedded_server_start -
- mysqli_embedded_server_start — Inicializa e inicia el servidor embebido
Descripción ¶
Advertencia
mysqli_driver::$report_mode
mysqli_report
(PHP 5, PHP 7)
Descripción ¶
int $mysqli_driver->report_mode ;
283
Una función útil para mejorar consultas durante el desarrollo de código y
pruebas. Dependiendo de las banderas, notifica errores desde llamadas a
funciones de mysqli o consultas que no usan un índice (o usan uno erróneo).
Parámetros ¶
flags
Banderas admitidas
Nombre Descripción
MYSQLI_REPORT_OFF Desactiva la notificación
MYSQLI_REPORT_ERROR Notifica errores desde llamadas a funciones de mysqli
MYSQLI_REPORT_STRICT Lanza una mysqli_sql_exception para errors en lugar de para advertenc
MYSQLI_REPORT_INDEX Notifica si no se usó un índice o si era erróneo en una consulta
MYSQLI_REPORT_ALL Establece todas las opciones (notifica todo)
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
5.3.4 El cambio de modo de notificación ahora es por solicitud, en vez de por proceso.
5.2.15 El cambio de modo de notificación ahora es por solicitud, en vez de por proceso.
Ejemplos ¶
<?php
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
/* activar la notificación */
$controlador = new mysqli_driver();
$controlador->report_mode = MYSQLI_REPORT_ALL;
try {
284
>query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
$resultado->close();
$mysqli->close();
echo $e->__toString();
}
?>
<?php
/* activar la notificación */
mysqli_report(MYSQLI_REPORT_ALL);
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
mysqli_free_result($resultado);
mysqli_close($enlace);
?>
Ver también ¶
285
La clase mysqli_warning ¶
(PHP 5, PHP 7)
Introducción ¶
Sinopsis de la Clase ¶
mysqli_warning {
/* Propiedades */
public $message ;
public $sqlstate ;
public $errno ;
/* Métodos */
public __construct ( void )
public next ( void ) : void
}
Propiedades ¶
message
Cadena de mensaje
sqlstate
Estado de SQL
errno
Número de error
Tabla de contenidos ¶
286
mysqli_warning::__construct
(PHP 5, PHP 7)
Descripción ¶
public mysqli_warning::__construct ( void )
Advertencia
Valores devueltos ¶
mysqli_warning::next
(PHP 5, PHP 7)
Descripción ¶
public mysqli_warning::next ( void ) : void
Advertencia
Valores devueltos ¶
287
La clase mysqli_sql_exception ¶
(PHP 5, PHP 7)
Introducción ¶
Sinopsis de la Clase ¶
mysqli_sql_exception extends RuntimeException {
/* Propiedades */
protected string $sqlstate ;
/* Propiedades heredadas */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}
Propiedades ¶
sqlstate
288
Alias y Funciones de MySQLi
obsoletos ¶
Tabla de contenidos ¶
289
mysqli_bind_param
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
Esta función ha sido declarada OBSOLETA desde PHP 5.3.0 y ELIMINADA a
partir de PHP 5.4.0.
Ver también ¶
mysqli_bind_result
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
mysqli_client_encoding
(PHP 5 < 5.4.0)
290
Descripción ¶
Advertencia
mysqli_connect
(PHP 5, PHP 7)
Descripción ¶
Ejemplos ¶
<?php
$enlace = mysqli_connect("127.0.0.1", "mi_usuario", "mi_contraseña", "
mi_bd");
if (!$enlace) {
echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
exit;
}
291
mysqli_close($enlace);
?>
mysqli_disable_reads_from_master
mysqli::disable_reads_from_master
(PHP 5 < 5.3.0)
mysqli_disable_reads_from_master -
- mysqli::disable_reads_from_master — Deshabilita las lecturas desde el
maestro
Descripción ¶
mysqli_disable_rpl_parse
(PHP 5 < 5.3.0)
292
Descripción ¶
mysqli_disable_rpl_parse ( mysqli $link ) : bool
Advertencia
mysqli_enable_reads_from_master
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_enable_reads_from_master ( mysqli $link ) : bool
Advertencia
mysqli_enable_rpl_parse
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_enable_rpl_parse ( mysqli $link ) : bool
Advertencia
293
mysqli_escape_string
(PHP 5, PHP 7)
Descripción ¶
mysqli_execute
(PHP 5, PHP 7)
Descripción ¶
Notas ¶
Nota:
mysqli_execute() es obsoleto y será removido.
Ver también ¶
mysqli_fetch
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
294
Ver también ¶
mysqli_get_cache_stats
(PHP 5 >= 5.3.0 and < 5.4.0)
Advertencia
Parámetros ¶
Valores devueltos ¶
Historial de cambios ¶
Versión Descripción
mysqli_get_client_stats
(PHP 5 >= 5.3.0, PHP 7)
Descripción ¶
mysqli_get_client_stats ( void ) : array
295
Parámetros ¶
Valores devueltos ¶
Ejemplos ¶
<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>
Array
(
[bytes_sent] => 43
[bytes_received] => 80
[packets_sent] => 1
[packets_received] => 2
[protocol_overhead_in] => 8
[protocol_overhead_out] => 4
[bytes_received_ok_packet] => 11
[bytes_received_eof_packet] => 0
[bytes_received_rset_header_packet] => 0
[bytes_received_rset_field_meta_packet] => 0
[bytes_received_rset_row_packet] => 0
[bytes_received_prepare_response_packet] => 0
[bytes_received_change_user_packet] => 0
[packets_sent_command] => 0
[packets_received_ok] => 1
[packets_received_eof] => 0
[packets_received_rset_header] => 0
[packets_received_rset_field_meta] => 0
[packets_received_rset_row] => 0
[packets_received_prepare_response] => 0
[packets_received_change_user] => 0
[result_set_queries] => 0
[non_result_set_queries] => 0
[no_index_used] => 0
[bad_index_used] => 0
[slow_queries] => 0
[buffered_sets] => 0
[unbuffered_sets] => 0
[ps_buffered_sets] => 0
[ps_unbuffered_sets] => 0
[flushed_normal_sets] => 0
[flushed_ps_sets] => 0
[ps_prepared_never_executed] => 0
[ps_prepared_once_executed] => 0
[rows_fetched_from_server_normal] => 0
[rows_fetched_from_server_ps] => 0
[rows_buffered_from_client_normal] => 0
[rows_buffered_from_client_ps] => 0
[rows_fetched_from_client_normal_buffered] => 0
[rows_fetched_from_client_normal_unbuffered] => 0
296
[rows_fetched_from_client_ps_buffered] => 0
[rows_fetched_from_client_ps_unbuffered] => 0
[rows_fetched_from_client_ps_cursor] => 0
[rows_skipped_normal] => 0
[rows_skipped_ps] => 0
[copy_on_write_saved] => 0
[copy_on_write_performed] => 0
[command_buffer_too_small] => 0
[connect_success] => 1
[connect_failure] => 0
[connection_reused] => 0
[reconnect] => 0
[pconnect_success] => 0
[active_connections] => 1
[active_persistent_connections] => 0
[explicit_close] => 0
[implicit_close] => 0
[disconnect_close] => 0
[in_middle_of_command_close] => 0
[explicit_free_result] => 0
[implicit_free_result] => 0
[explicit_stmt_close] => 0
[implicit_stmt_close] => 0
[mem_emalloc_count] => 0
[mem_emalloc_ammount] => 0
[mem_ecalloc_count] => 0
[mem_ecalloc_ammount] => 0
[mem_erealloc_count] => 0
[mem_erealloc_ammount] => 0
[mem_efree_count] => 0
[mem_malloc_count] => 0
[mem_malloc_ammount] => 0
[mem_calloc_count] => 0
[mem_calloc_ammount] => 0
[mem_realloc_count] => 0
[mem_realloc_ammount] => 0
[mem_free_count] => 0
[proto_text_fetched_null] => 0
[proto_text_fetched_bit] => 0
[proto_text_fetched_tinyint] => 0
[proto_text_fetched_short] => 0
[proto_text_fetched_int24] => 0
[proto_text_fetched_int] => 0
[proto_text_fetched_bigint] => 0
[proto_text_fetched_decimal] => 0
[proto_text_fetched_float] => 0
[proto_text_fetched_double] => 0
[proto_text_fetched_date] => 0
[proto_text_fetched_year] => 0
[proto_text_fetched_time] => 0
[proto_text_fetched_datetime] => 0
[proto_text_fetched_timestamp] => 0
[proto_text_fetched_string] => 0
[proto_text_fetched_blob] => 0
[proto_text_fetched_enum] => 0
[proto_text_fetched_set] => 0
[proto_text_fetched_geometry] => 0
[proto_text_fetched_other] => 0
[proto_binary_fetched_null] => 0
[proto_binary_fetched_bit] => 0
[proto_binary_fetched_tinyint] => 0
297
[proto_binary_fetched_short] => 0
[proto_binary_fetched_int24] => 0
[proto_binary_fetched_int] => 0
[proto_binary_fetched_bigint] => 0
[proto_binary_fetched_decimal] => 0
[proto_binary_fetched_float] => 0
[proto_binary_fetched_double] => 0
[proto_binary_fetched_date] => 0
[proto_binary_fetched_year] => 0
[proto_binary_fetched_time] => 0
[proto_binary_fetched_datetime] => 0
[proto_binary_fetched_timestamp] => 0
[proto_binary_fetched_string] => 0
[proto_binary_fetched_blob] => 0
[proto_binary_fetched_enum] => 0
[proto_binary_fetched_set] => 0
[proto_binary_fetched_geometry] => 0
[proto_binary_fetched_other] => 0
)
Ver también ¶
Stats description
mysqli_get_links_stats
(PHP 5 >= 5.6.0, PHP 7)
Descripción ¶
mysqli_get_links_stats ( void ) : array
Parámetros ¶
Valores devueltos ¶
total
298
active_plinks
cached_plinks
mysqli_get_metadata
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
mysqli_master_query
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_master_query ( mysqli $link , string $query ) : bool
Advertencia
299
mysqli_param_count
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
mysqli_report
(PHP 5, PHP 7)
Descripción ¶
mysqli_rpl_parse_enabled
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_rpl_parse_enabled ( mysqli $link ) : int
Advertencia
300
Esta función ha sido declarada OBSOLETA y ELIMINADA desde PHP 5.3.0.
mysqli_rpl_probe
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_rpl_probe ( mysqli $link ) : bool
Advertencia
mysqli_send_long_data
(PHP 5 < 5.4.0)
Descripción ¶
Advertencia
301
mysqli::set_opt
mysqli_set_opt
(PHP 5, PHP 7)
Descripción ¶
mysqli_slave_query
(PHP 5 < 5.3.0)
Descripción ¶
mysqli_slave_query ( mysqli $link , string $query ) : bool
Advertencia
302
Registro de cambios ¶
A las clases/funciones/métodos de esta extensión se han realizado los
siguientes cambios.
303