Forum und email

Extensión mejorada de MySQL

Introducción

La extensión mysqli permite acceder a la funcionalidad provista por MySQL 4.1 y superior. Más información acerca del servidor de base de datos MySQL puede ser encontrada en » https://www.mysql.com/

La documentación para MySQL puede ser encontrada en » https://dev.mysql.com/doc/.

Partes de esta documentación ha sido incluida del manual de MySQL con permiso de MySQL AB.

Requisitos

Para tener estas funciones disponibles, usted debe compilar PHP con soporte para la extensión MySQLI.

Note: La extensión mysqli está diseñada para trabajar con la versión 4.1.3 o superior de MySQL. Para versiones previas, por favor vea documentación de la extensión MySQL.

Instalación

Para instalar la extensión de mysqli para PHP, use la opción de configuración --with-mysqli=mysql_config_path/mysql_config donde mysql_config_path representa la ubicación del programa mysql_config que viene con MySQL en versiones superiores a 4.1.

Si quiere instalar la extensión de mysql junto con la extensión mysqli, usted tiene que usar la mismas librerias cliente, para evitar cualquier conflicto.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Opciones de configuración de MySQLi
Nombre Default Cambiable Changelog
mysqli.max_links "-1" PHP_INI_SYSTEM Available since PPH 5.0.0.
mysqli.default_port 3306 PHP_INI_ALL Available since PPH 5.0.0.
mysqli.default_socket NULL PHP_INI_ALL Available since PPH 5.0.0.
mysqli.default_host NULL PHP_INI_ALL Available since PPH 5.0.0.
mysqli.default_user NULL PHP_INI_ALL Available since PPH 5.0.0.
mysqli.default_pw NULL PHP_INI_ALL Available since PPH 5.0.0.

Para más detalles y definiciones de las constantes PHP_INI_* anteriores, vea el capítulo sobre Cambios de configuración.

A continuación se presenta una corta explicación de las directivas de configuración.

El número máximo de conexiones MySQL por proceso.

mysqli.default_port string

El puerto TCP por defecto a usar cuando se conecte al servidor de base de datos si no se ha específicado otro puerto. Si no se define el default, el puerto será tomado de la variable de ambiente MYSQL_TCP_PORT, la entrada mysql-tcp en el archivo /etc/services o la constante en tiempo de ejecución MYSQL_PORT en ese orden. Win32 usará solo la constante MYSQL_PORT.

mysqli.default_socket string

El nombre de socket por defecto a usar cuando se conecte a un servidor de base de datos local si no se ha específicado otro nombre de socket.

mysqli.default_host string

El servidor huésped por defecto a usar cuando se conecta al servidor de base de datos si no se ha específicado otro. No aplica en modo seguro.

mysqli.default_user string

El nombre de usuario por defecto a usar cuando se conecta al servidor de base de datos si no se específica otro nombre. No aplica en modo seguro.

mysqli.default_pw string

La contraseña a usar cuando se conecta al servidor de base de datos si no se específica otra contraseña. No aplica en modo seguro.

Clases predefinidas

mysqli

Representa una conexión entres PHP y la base de datos MySQL.

Constructor

  • mysqli - constructor de un nuevo objeto mysqli

Métodos

  • autocommit - cambia en on o off las modificaciones de auto-commiting en la base de datos

  • change_user - cambia el usuario del identificador de enlace específicado

  • character_set_name - regresa el conjunto de caracteres del identificador de enlace específicado

  • close - cierra una conexión previamente abierta

  • commit - completa la transacció actual

  • connect - abre una nueva conexión al servidor de MySQL

  • debug - realiza operaciones de rastreo

  • dump_debug_info - vacía informació de rastreo

  • get_client_info - regresa la versión del cliente

  • get_host_info - regresa el tipo de conexión usada

  • get_server_info - regresa la versión del servidor MySQL

  • get_server_version - regresa la versión del servidor MySQL

  • init - inicializa el objeto mysqli

  • info - obtiene información acerca de la consulta más recientemente ejecutada

  • kill - solicita al servidor destruir un thread de mysql

  • multi_query - realiza consultas de SQL múltiples

  • more_results - checa si existen mas resultados de la consulta múltiple actualmente ejecutada

  • next_result - lee el siguiente resultado de la consulta múltiple actualmente ejecutada

  • options - fija opciones

  • ping - llama una conexión con el servidor o reconecta si no hay conexión

  • prepare - prepara una sentencia SQL

  • query - ejecuta una sentencia SQL

  • real_connect - intenta abrir una conexión al servidor de base de datos MySQL

  • escape_string - caracteres especiales de escape para ser usados en una sentencia SQL, tomando en cuenta el conjunto de caracteres actual de la conexión

  • rollback - deshace la transacción actual

  • select_db - selecciona la base de datos por defecto

  • ssl_set - fija los parámetros SSL

  • stat - obtiene el estado actual del sistema

  • stmt_init - inicializa una sentencia para ser usada con mysqli_stmt_prepare

  • store_result - transfiere un resultado de la última consulta

  • use_result - transfiere un resultado sin almacenamiento intermedio de la última consulta

  • thread_safe - regresa si se ha dado thread_safety o no

Propiedades

  • affected_rows - obtiene el número de filas afectadas en la operación MySQL previa

  • client_info - regresa en una cadena la versión del cliente de MySQL

  • client_version - regresa en un entero la versión del cliente de MySQL

  • errno - regresa el código de error para la llamada a función más reciente

  • error - regresa la cadena de error para la llamada a función más reciente

  • field_count - regresa el número de columnas para la consulta más reciente

  • host_info - regresa la cadena representando el tipo de conexión usado

  • info - regresa información acerca de la consulta ejecutada más recientemente

  • insert_id - regresa el identificador generado automáticamente usado en la última consulta

  • protocol_version - regresa la versión del protocolo usado por MySQL

  • sqlstate - regresa una cadena que contiene el código de error SQLSTATE para el último error

  • thread_id - regresa el identificador del THREAD para la conexión actual

  • warning_count - regresa el número de alertas generadas durante la ejecución del enunciado SQL previo

mysqli_stmt

Representa una sentencia preparada.

Métodos

  • bind_param - enlaza variables a una sentencia preparada

  • bind_result - enlaza variables a una sentencia preparada para el almacenamiento del resultado

  • close - cierra la sentencia preparada

  • data_seek - busca a una fila arbitrariamente en el resultado

  • execute - ejecuta una sentencia preparada

  • fetch - obtiene el resultado de la sentencia preparada en variables límite

  • free_result - libera la memoria del resultado almacenado para el manejador de la sentencia dada

  • result_metadata - obtiene un resultado de la sentencia preparada para información de metadatos

  • prepare - prepara una consulta SQL

  • send_long_data - envía datos en partes

  • reset - resetea una sentencia preparada

  • store_result - almacena el resultado completo de la sentencia preparada

Propiedades

  • affected_rows - regresa las filas afectadas de la última sentencia ejecutdada

  • errno - regresa el código de error para la llamada a función más reciente

  • error - regresa el mensaje de error para la llamada a función más reciente

  • param_count - regresa el numero de parámetros para la sentencia preparada dada

  • sqlstate - regresa una cadena conteniendo el código de error SQLSTATE para la llamada a función más reciente

mysqli_result

Representa el resultado obtenido de la consulta hecha en la base de datos.

Métodos

  • close - cierra el resultado

  • data_seek - mueve el puntero interno del resultado

  • fetch_field - obtiene la información de la columna en el resultado

  • fetch_fields - obtiene la información para todas las columnas del resultado

  • fetch_field_direct - obtiene información de la columna para la columna dada

  • fetch_array - recupera una fila como una matriz asociativa, una matriz numérica, o ambos.

  • fetch_assoc - obtiene una fuka como una matriz asociativa

  • fetch_object - obtiene una fila como un objeto

  • fetch_row - obtiene una fila como una matriz enumerada

  • close - libera la memoria ocupada por el resultado

  • field_seek - fija el apuntador del resultado a la posición específicada

Propiedades

  • current_field - regresa la posición de puntero actual

  • field_count - regresa el número de campos en el resultado

  • lengths - regresa una matriz con la longitud de los campos

  • num_rows - regresa el número de filas en el resultado

Constantes predefinidas

Constantes MySQLi
Nombre Descripción
MYSQLI_READ_DEFAULT_GROUP (integer) Lee las opciones del grupo llamado de `my.cnf' o la fila especificada con MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (integer) Lee las opciones del archivo específicado en vez de my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (integer) Tiempo de espera para la conexión en segundos
MYSQLI_OPT_LOCAL_INFILE (integer) Habilita el comando LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND (integer) Comando a ejecutar cuando se conecta al servidor MySQL. Será automáticamente re-ejecutado cuando se vuelva a conectar.
MYSQLI_CLIENT_SSL (integer) Usa SSL (protocolo de encripción). Esta opción no debe ser fijado por programas de apliación; esta es fijada internamente en la libreria cliente de MySQL
MYSQLI_CLIENT_COMPRESS (integer) Usa el protocolo de compresión
MYSQLI_CLIENT_INTERACTIVE (integer) Permite tiempo de espera interactivo en segundos (en vez de esperar ciertos segundos) de inactividad antes de cerrar la conexión. La variable wait_timeout de sesión del cliente será fijada a el valor de la variable de sesión interactive_timeout.
MYSQLI_CLIENT_IGNORE_SPACE (integer) Permite espacios después de los nombres de las funciones. Esto hace a todas las funciones palabras reservadas.
MYSQLI_CLIENT_NO_SCHEMA (integer) No permite la sintaxis db_name.tbl_name.col_name syntax.
MYSQLI_CLIENT_MULTI_QUERIES (integer)
MYSQLI_STORE_RESULT (integer) Para usar resultados con almacenamiento intermedio
MYSQLI_USE_RESULT (integer) Para usar resultados sin almacenamiento intermedio
MYSQLI_ASSOC (integer) Las columnas son regresadas en una matriz que tiene el nombre del campo como índice de la matriz.
MYSQLI_NUM (integer) Las columnas son regresadas en una matriz teniendo un índice enumerado.
MYSQLI_BOTH (integer) Las clumnas son regresadas en una matriz teniendo ambas formas de índice numérico y con el nombre del campo como índice asociativo.
MYSQLI_NOT_NULL_FLAG (integer) Indica que un campo es definido como NOT NULL
MYSQLI_PRI_KEY_FLAG (integer) El campo es parte de un índice primario
MYSQLI_UNIQUE_KEY_FLAG (integer) El campo es parte de un índice único
MYSQLI_MULTIPLE_KEY_FLAG (integer) El campo es parte de un índice.
MYSQLI_BLOB_FLAG (integer) El campo está definido como BLOB
MYSQLI_UNSIGNED_FLAG (integer) El campo está definido como UNSIGNED
MYSQLI_ZEROFILL_FLAG (integer) El campo está definido como ZEROFILL
MYSQLI_AUTO_INCREMENT_FLAG (integer) El campo está definido como AUTO_INCREMENT
MYSQLI_TIMESTAMP_FLAG (integer) El campo está definido como TIMESTAMP
MYSQLI_SET_FLAG (integer) El campo está definido como SET
MYSQLI_NUM_FLAG (integer) El campo está definido como NUMERIC
MYSQLI_PART_KEY_FLAG (integer) El campo es parte de un índice multiple
MYSQLI_GROUP_FLAG (integer) El campo es parte de GROUP BY
MYSQLI_TYPE_DECIMAL (integer) El campo está definido como DECIMAL
MYSQLI_TYPE_TINY (integer) El campo está definido como TINYINT
MYSQLI_TYPE_SHORT (integer) El campo está definido como INT
MYSQLI_TYPE_LONG (integer) El campo está definido como INT
MYSQLI_TYPE_FLOAT (integer) El campo está definido como FLOAT
MYSQLI_TYPE_DOUBLE (integer) El campo está definido como DOUBLE
MYSQLI_TYPE_NULL (integer) El campo está definido como DEFAULT NULL
MYSQLI_TYPE_TIMESTAMP (integer) El campo está definido como TIMESTAMP
MYSQLI_TYPE_LONGLONG (integer) El campo está definido como BIGINT
MYSQLI_TYPE_INT24 (integer) El campo está definido como MEDIUMINT
MYSQLI_TYPE_DATE (integer) El campo está definido como DATE
MYSQLI_TYPE_TIME (integer) El campo está definido como TIME
MYSQLI_TYPE_DATETIME (integer) El campo está definido como DATETIME
MYSQLI_TYPE_YEAR (integer) El campo está definido como YEAR
MYSQLI_TYPE_NEWDATE (integer) El campo está definido como DATE
MYSQLI_TYPE_ENUM (integer) El campo está definido como ENUM
MYSQLI_TYPE_SET (integer) El campo está definido como SET
MYSQLI_TYPE_TINY_BLOB (integer) El campo está definido como TINYBLOB
MYSQLI_TYPE_MEDIUM_BLOB (integer) El campo está definido como MEDIUMBLOB
MYSQLI_TYPE_LONG_BLOB (integer) El campo está definido como LONGBLOB
MYSQLI_TYPE_BLOB (integer) El campo está definido como BLOB
MYSQLI_TYPE_VAR_STRING (integer) El campo está definido como VARCHAR
MYSQLI_TYPE_STRING (integer) El campo está definido como CHAR
MYSQLI_TYPE_GEOMETRY (integer) El campo está definido como GEOMETRY
MYSQLI_NEED_DATA (integer) Obtiene más información para varibles enlazadas (bind)
MYSQLI_NO_DATA (integer) No obtiene más información para variables enlazadas (bind)

Ejemplos

Todos los ejemplos en la documentación MySQLI usan la base de datos de MySQL AB. Puede ser encontrada en » https://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Table of Contents