Extensão MySQL Melhorada
Introdução
A extensão mysqli permite a você acessar a funcionalidade provida pelo MySQL 4.1 e posterior. Maiores informações sobre o servidor de banco de dados MySQL podem ser encontradas em » https://www.mysql.com/
Documentação para o MySQL pode ser encontrada em » https://dev.mysql.com/doc/.
Partes desta documentação foram incluídas do manual do MySQL com a permissão de MySQL AB.
Dependências
Para ter esta funções disponíveis, você deverá compilar o PHP com suporte para a extensão mysqli.
Nota: A extensão mysqli foi criada para funcionar com a versão 4.1.3 ou posterior do MySQL. Para versões anteriores, por favor vejaa documentação da extensão MySQL.
Instalação
Para instalar a extensão mysqli para o PHP, use a opção de configuração --with-mysqli=mysql_config_path/mysql_config aonde mysql_config_path representa a localização do programa mysql_config que vem com versões do MySQL maiores do que 4.1.
Se você quiser instalar a extensão mysql junto com a extensão mysqli você tem que usar a mesma biblioteca de cliente para previnir quaisquer conflitos.
Configurações em execução
O comportamento dessas funções podem ser modificado pelas configurações do php.ini.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Disponível desde o PHP 5.0.0. |
mysqli.default_port | "3306" | PHP_INI_ALL | Disponível desde o PHP 5.0.0. |
mysqli.default_socket | NULL | PHP_INI_ALL | Disponível desde o PHP 5.0.0. |
mysqli.default_host | NULL | PHP_INI_ALL | Disponível desde o PHP 5.0.0. |
mysqli.default_user | NULL | PHP_INI_ALL | Disponível desde o PHP 5.0.0. |
mysqli.default_pw | NULL | PHP_INI_ALL | Disponível desde o PHP 5.0.0. |
Para maiores detalhes e definições das constantes PHP_INI_* acima, veja o capitulo sobre mudanças de configuração.
Breve descrição das diretivas de configuração.
- mysqli.max_links integer
-
O número máximo de conexões MySQL por processo.
- mysqli.default_port string
-
O número da porta TCP padrão para usar ao conectar ao servidor de banco de dados se não for especificada outra porta. Se não for especificado um padrão, então a porta será obtida da variável de ambiênte MYSQL_TCP_PORT, a entrada mysql-tcp em /etc/services ou a constante em tempo de compilação MYSQL_PORT, nesta ordem. Em Win32 será usada apenas a constante MYSQL_PORT.
- mysqli.default_socket string
-
O nome padrão do socket para usar ao conectar com um servidor de banco de dados local, se não for especificado outro nome de socket.
- mysqli.default_host string
-
O servidor padrão para usar ao conectar com o servidor de banco de dados se não for especificado um servidor. Não se aplica em safe mode.
- mysqli.default_user string
-
O nome de usuário padrão para usar ao conectar com o servidor de banco de dados. Não se aplica em safe mode.
- mysqli.default_pw string
-
A senha padrão para usar ao conectar ao servidor de banco de dados se não for especificado outra senha. Não se aplica em safe mode.
Classes pré-definidas
mysqli
Representa uma conexão entre o PHP e um banco de dados MySQL.
Construtor
-
mysqli - constroi um novo objeto mysqli
Métodos
-
autocommit - ativa ou desativa o salvar automaticamente as modificações no banco de dados
-
change_user - modifica o usuário da conexão com o banco de dados especficada
-
character_set_name - retorna o conjunto de caracteres padrão para a conexão com o banco de dados
-
close - fecha uma conexão aberta anteriormente
-
commit - grava a transação atual
-
connect - abre uma nova conexão com o servidor de banco de dados MySQL
-
debug - realiza operações de debug
-
dump_debug_info - mostra informações de debug
-
get_client_info - retorna a versão do cliente
-
get_host_info - retorna o tipo da conexão usada
-
get_server_info - retorna a versão do servidor MySQL
-
get_server_version - retorna a versão do servidor MySQL
-
init - inicia o objeto mysqli
-
info - retorna informação sobre a consulta mais recente executada
-
kill - diz ao servidor para matar uma thread do mysql
-
multi_query - executa multiplas consultas
-
more_results - confere se existem mais resultados na consulta multipla atual
-
next_result - lê o próximo resultado da consulta multipla atual
-
options - define opções
-
ping - pinga uma conexão com o servidor ou reconecta se não houver conexão
-
prepare - prepara uma consulta SQL
-
query - executa uma consulta
-
real_connect - tenta abrir uma conexão com o servidor de banco de dados MySQL
-
escape_string - escapa os caracteres especiais para usar em uma consulta SQL, levando em conta o conjunto de caracteres atual
-
rollback - desfaz a transação atual
-
select_db - define o banco de dados padrão
-
set_charset - define o conjunto de caracteres padrão do cliente
-
ssl_set - define parâmetros ssl
-
stat - retorna o estado atual do sistema
-
stmt_init - inicializa um comando para usar com mysqli_stmt_prepare
-
store_result - transfere um conjunto de resultados da ultima consulta
-
thread-safe - retorna quando thread safety é dado ou não
-
use_result - transfere um conjunto de resultados não guardado em buffer da ultima consulta
Propriedades
-
affected_rows - retorna o número de linhas afetadas pela operação MySQL anterior
-
client_info - retorna a versão do cliente MySQL como string
-
client_version - retorna a versão do cliente MySQL como inteiro
-
errno - retorna o código de erro da chamada de função mais recente
-
error - retorna a string de erro da chamada de função mais recente
-
field_count - retorna o número de colunas da consulta mais recente
-
host_info - retorna uma string representando o tipo de conexão usada
-
info - retorna informação sobre a consulta mais recente executada
-
insert_id - retorna o id gerado automaticamente usado na ultima consulta
-
protocol_version - retorna a versão usada do protocolo MySQL
-
server_info - retorna uma string que representa o número da versão do servidor
-
server_version - retorna o número da versão do servidor como um inteiro
-
sqlstate - retorna uma string contendo o código de erro SQLSTATE do ultimo erro
-
thread_id - retorna o thread ID da conexão atual
-
warning_count - retorna o número de warnings(avisos) gerados durante a execução da consulta SQL anterior
mysqli_stmt
Representa um comando preparado.
Métodos
-
bind_param - binds variables to a prepared statement
-
bind_result - binds variables to a prepared statement for result storage
-
close - fecha um comando preparado
-
data_seek - move para uma linha arbritária em um conjuto de resultads em um comando preparado
-
execute - Executa um comando preparado
-
fetch - obtém resultados de um comando preparado em variáveis
-
free_result - libera a memória do resultado de um comando preparado
-
prepare - prepara uma consulta SQL
-
reset - reseta uma prepared statement
-
result_metadata - retorna um conjunto de resultados de um comando preparado para informação de metadados
-
send_long_data - envia os dados em pedaços
-
store_result - guarda todo o conjunto de resultados de um comando preparado em buffer
Propriedades
-
affected_rows - retorna as linhas afetadas pela ultima consulta executada
-
errno - retorna o código de erro pela ultima função do comando
-
errno - retorna a mensagem de erro pela última função do comando
-
field_count - retorna o número de colunas de um conjunto de resultados
-
id - retorna o identificador do comando
-
insert_id - retorna o valor gerado para uma coluna AUTO_INCREMENT por prepared statement
-
num_rows - retorna o número de linhas de um conjunto de resultados
-
param_count - retorna o número de parâmetros para o comando preparado
-
sqlstate - retorna uma string contendo o código de erro SQLSTATE pela última função do comando
mysqli_result
Representa o conjunto de resultados da consulta feit ao banco de dados.
Métodos
-
fetch_array - retorna uma linha em uma matriz associativa, uma matriz numérica, ou ambas.
-
fetch_assoc - retorna uma linha do resultado como uma matriz associativa
-
fetch_field - retorna informação sobre uma coluna do conjunto de resulatdos
-
fetch_fields - retorna informação sobre todas as colunas do conjunto de resultados
-
fetch_field_direct - retorna informação da coluna especificada
-
fetch_object - retorna uma linha do resultado como um objeto
-
fetch_row - retorna uma linha do resultado como uma matriz numérica
-
field_seek - define o ponteiro do resultado para o índice de campo especificado
-
free_result - libera a memória usada
Propriedades
-
current_field - retorna o índice do campo atual
-
field_count - retorna o número de campos do conjunto de resultados
-
lengths - retorna uma matriz com os tamanhos das colunas
-
num_rows - retorna o número de linhas em um conjunto de resultados
-
type - retorna MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT
Constantes pré-definidas
Nome | Descrição |
---|---|
MYSQLI_READ_DEFAULT_GROUP (integer) | Lê opções do grupo especificado apartir do arquivo `my.cnf' ou do arquivo especificado por MYSQLI_READ_DEFAULT_FILE |
MYSQLI_READ_DEFAULT_FILE (integer) | Lê opções apartir do arquivo indicado ao invés de my.cnf |
MYSQLI_OPT_CONNECT_TIMEOUT (integer) | Limite de tempo para conectar em segundos |
MYSQLI_OPT_LOCAL_INFILE (integer) | Ativa o comando LOAD LOCAL INFILE |
MYSQLI_INIT_COMMAND (integer) | Comando para executar ao conectar no servidor MySQL. Será automaticamente executado novamente ao reconectar. |
MYSQLI_CLIENT_SSL (integer) | Usar SSL (protocolo criptografado). Esta opção não deve ser definida por programas aplicativos; ela é definida internamente na biblioteca de cliente MySQL |
MYSQLI_CLIENT_COMPRESS (integer) | Usar o protocolo de compressão |
MYSQLI_CLIENT_INTERACTIVE (integer) | Permite interactive_timeout segundos (ao invés de wait_timeout segundo) de inatividade antes de fechar a conexão. A variável de sessão do cliente wait_timeout variable será definida com o valor da variável interactive_timeout. |
MYSQLI_CLIENT_IGNORE_SPACE (integer) | Permite espaçoes após os nomes de função. Torna todos os nomes de função palavras reservadas. |
MYSQLI_CLIENT_NO_SCHEMA (integer) | Não permite a sintaxe nome_bancodados.nome_tabela.nome_coluna |
MYSQLI_CLIENT_MULTI_QUERIES (integer) | |
MYSQLI_STORE_RESULT (integer) | Para usar conjuntos de resultados guardados em buffer |
MYSQLI_USE_RESULT (integer) | Para usar conjuntos de resultados não guardados em buffer |
MYSQLI_ASSOC (integer) | As colunas são retornadas em uma matriz tendo o nome dos campos como indices da matriz. |
MYSQLI_NUM (integer) | As colunas são retornadas em uma matriz tendo os índices numerados. |
MYSQLI_BOTH (integer) | As colunas são retornadas em uma matriz tendo ambos os índices, numérico e o nome do campo como índice associativo. |
MYSQLI_NOT_NULL_FLAG (integer) | Indica que um campo é definido como NOT NULL |
MYSQLI_PRI_KEY_FLAG (integer) | O campo é parte do índice primário |
MYSQLI_UNIQUE_KEY_FLAG (integer) | O campo é parte de um índice único. |
MYSQLI_MULTIPLE_KEY_FLAG (integer) | O campo é parte de um índice. |
MYSQLI_BLOB_FLAG (integer) | O campo é definido como BLOB |
MYSQLI_UNSIGNED_FLAG (integer) | O campo é definido como UNSIGNED |
MYSQLI_ZEROFILL_FLAG (integer) | O campo é definido como ZEROFILL |
MYSQLI_AUTO_INCREMENT_FLAG (integer) | O campo é definido como AUTO_INCREMENT |
MYSQLI_TIMESTAMP_FLAG (integer) | O campo é definido como TIMESTAMP |
MYSQLI_SET_FLAG (integer) | O campo é definido como SET |
MYSQLI_NUM_FLAG (integer) | O campo é definido como NUMERIC |
MYSQLI_PART_KEY_FLAG (integer) | O campo é parte de um índice múltiplo |
MYSQLI_GROUP_FLAG (integer) | O campo é parte de GROUP BY |
MYSQLI_TYPE_DECIMAL (integer) | O campo é definido como DECIMAL |
MYSQLI_TYPE_TINY (integer) | O campo é definido como TINYINT |
MYSQLI_TYPE_SHORT (integer) | O campo é definido como INT |
MYSQLI_TYPE_LONG (integer) | O campo é definido como INT |
MYSQLI_TYPE_FLOAT (integer) | O campo é definido como FLOAT |
MYSQLI_TYPE_DOUBLE (integer) | O campo é definido como DOUBLE |
MYSQLI_TYPE_NULL (integer) | O campo é definido como DEFAULT NULL |
MYSQLI_TYPE_TIMESTAMP (integer) | O campo é definido como TIMESTAMP |
MYSQLI_TYPE_LONGLONG (integer) | O campo é definido como BIGINT |
MYSQLI_TYPE_INT24 (integer) | O campo é definido como MEDIUMINT |
MYSQLI_TYPE_DATE (integer) | O campo é definido como DATE |
MYSQLI_TYPE_TIME (integer) | O campo é definido como TIME |
MYSQLI_TYPE_DATETIME (integer) | O campo é definido como DATETIME |
MYSQLI_TYPE_YEAR (integer) | O campo é definido como YEAR |
MYSQLI_TYPE_NEWDATE (integer) | O campo é definido como DATE |
MYSQLI_TYPE_ENUM (integer) | O campo é definido como ENUM |
MYSQLI_TYPE_SET (integer) | Field is defined as SET |
MYSQLI_TYPE_TINY_BLOB (integer) | Field is defined as TINYBLOB |
MYSQLI_TYPE_MEDIUM_BLOB (integer) | O campo é definido como MEDIUMBLOB |
MYSQLI_TYPE_LONG_BLOB (integer) | O campo é definido como LONGBLOB |
MYSQLI_TYPE_BLOB (integer) | O campo é definido como BLOB |
MYSQLI_TYPE_STRING (integer) | O campo é definido como VARCHAR |
MYSQLI_TYPE_CHAR (integer) | O campo é definido como CHAR |
MYSQLI_TYPE_GEOMETRY (integer) | O campo é definido como GEOMETRY |
MYSQLI_NEED_DATA (integer) | More data available for bind variable |
MYSQLI_NO_DATA (integer) | No more data available for bind variable |
Exemplos
Todos os exemplos na documentação MySQLI usam o banco de dados world da MySQL AB. O banco de dados world pode ser encontrado em » https://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick
Índice
- mysqli_affected_rows — Retorna o número de linhas afetadas pela operação MySQL anterior
- mysqli_autocommit — Ativa ou desativa o salvar automaticamente as modificações no banco de dados
- mysqli_bind_param — Apelido para mysqli_stmt_bind_param
- mysqli_bind_result — Apelido para mysqli_stmt_bind_result
- mysqli_change_user — Modifica o usuário para a conexão com o banco de dados especificada
- mysqli_character_set_name — Retorna o conjunto de caracteres padrão para a conexão com o banco de dados
- mysqli_client_encoding — Apelido para mysqli_character_set_name
- mysqli_close — Fecha uma conexão aberta anteriormente com o banco de dados
- mysqli_commit — Salva a transação atual
- mysqli_connect_errno — Retorna o código de erro da ultima chamada a função connect
- mysqli_connect_error — Retorna uma string descrevendo o ultimo erro da função connect
- mysqli_connect — Abre uma nova conexão com o servidor MySQL
- mysqli_data_seek — Ajusta o ponteiro do resultado para uma linha arbritaria no conjunto de resutados
- mysqli_debug — Realiza operações de debug
- mysqli_disable_reads_from_master — Descrição
- mysqli_disable_rpl_parse — Descrição
- mysqli_dump_debug_info — Descarrega informação de debug no log
- mysqli_embedded_server_end — Descrição
- mysqli_embedded_server_start — Descrição
- mysqli_enable_reads_from_master — Descrição
- mysqli_enable_rpl_parse — Descrição
- mysqli_errno — Retorna o código de erro para a chamada de função mais recente
- mysqli_error — Retorna uma string descrevendo o ultimo erro
- mysqli_escape_string — Apelido para mysqli_real_escape_string
- mysqli_execute — Apelido para mysqli_stmt_execute
- mysqli_fetch_array — Obtem uma linha do resultado como uma matriz associativa, numérica, ou ambas
- mysqli_fetch_assoc — Obtem uma linha do conjunto de resultados como uma matriz associativa
- mysqli_fetch_field_direct — Obtem meta dados para um único campo
- mysqli_fetch_field — Retorna o próximo campo no conjunto de resultados
- mysqli_fetch_fields — Retorna uma matriz de objetos representando os campos em um conjunto de resultados
- mysqli_fetch_lengths — Retorna os tamanhos das colunas na linha atual no conjunto de resultados
- mysqli_fetch_object — Retorna a linha atual do conjunto de resultados como um objeto
- mysqli_fetch_row — Obtém uma linha do resultado como uma matriz numerada
- mysqli_fetch — Apelido para mysqli_stmt_fetch
- mysqli_field_count — Retorna o número de colunas para a consulta mais recente
- mysqli_field_seek — Move o ponteiro do resultado para um campo especificado
- mysqli_field_tell — Obtém o índice do campo de um ponteiro de resultado
- mysqli_free_result — Libera a memória associada ao resultado
- mysqli_get_charset — Returns a character set object
- mysqli_get_client_info — Retorna a versão do cliente MySQL como uma string
- mysqli_get_client_version — Obtém informação sobre o cliente MySQL
- mysqli_get_host_info — Retorna uma string representando o tipo da conexão usada
- mysqli_get_metadata — Apelido para mysqli_stmt_result_metadata
- mysqli_get_proto_info — Retorna a versão do protocolo MySQL usada
- mysqli_get_server_info — Retorna a versão do servidor MySQL
- mysqli_get_server_version — Retorna a versão do servidor MySQL como um integer
- mysqli_get_warnings — Descrição
- mysqli_info — Obtém informação sobre a consulta executada mais recentemente
- mysqli_init — Inicializa a MySQLi e tetorna um objeto para usar com mysqli_real_connect
- mysqli_insert_id — Retorna o id gerado automaticamente na última consulta
- mysqli_kill — Diz ao servidor para matar uma thread MySQL
- mysqli_master_query — Força a execução de uma consulta no master em uma configuração master/slave
- mysqli_more_results — Confere se existem mais resultados de consultas em uma consulta múltipla
- mysqli_multi_query — Executa uma consulta no banco de dados
- mysqli_next_result — Preepara o próximo resultado de uma consulta múltipla
- mysqli_num_fields — Obtém o número de campos em um resultado
- mysqli_num_rows — Gets the number of rows in a result
- mysqli_options — Set options
- mysqli_param_count — Alias for mysqli_stmt_param_count
- mysqli_ping — Pings a server connection, or tries to reconnect if the connection has gone down
- mysqli_prepare — Prepare a SQL statement for execution
- mysqli_query — Performs a query on the database
- mysqli_real_connect — Opens a connection to a mysql server
- mysqli_real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
- mysqli_real_query — Execute an SQL query
- mysqli_report — Enables or disables internal report functions
- mysqli_rollback — Rolls back current transaction
- mysqli_rpl_parse_enabled — Check if RPL parse is enabled
- mysqli_rpl_probe — RPL probe
- mysqli_rpl_query_type — Returns RPL query type
- mysqli_select_db — Selects the default database for database queries
- mysqli_send_long_data — Alias for mysqli_stmt_send_long_data
- mysqli_send_query — Send the query and return
- mysqli_server_end — Shut down the embedded server
- mysqli_server_init — Initialize embedded server
- mysqli_set_charset — Sets the default client character set
- mysqli_set_local_infile_default — Unsets user defined handler for load local infile command
- mysqli_set_local_infile_handler — Set callback functions for LOAD DATA LOCAL INFILE command
- mysqli_set_opt — Alias of mysqli_options
- mysqli_slave_query — Force execution of a query on a slave in a master/slave setup
- mysqli_sqlstate — Returns the SQLSTATE error from previous MySQL operation
- mysqli_ssl_set — Used for establishing secure connections using SSL
- mysqli_stat — Gets the current system status
- mysqli_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
- mysqli_stmt_attr_get — Descrição
- mysqli_stmt_attr_set — Descrição
- mysqli_stmt_bind_param — Binds variables to a prepared statement as parameters
- mysqli_stmt_bind_result — Binds variables to a prepared statement for result storage
- mysqli_stmt_close — Closes a prepared statement
- mysqli_stmt_data_seek — Seeks to an arbitray row in statement result set
- mysqli_stmt_errno — Returns the error code for the most recent statement call
- mysqli_stmt_error — Returns a string description for last statement error
- mysqli_stmt_execute — Executes a prepared Query
- mysqli_stmt_fetch — Fetch results from a prepared statement into the bound variables
- mysqli_stmt_field_count — Returns the number of field in the given statement
- mysqli_stmt_free_result — Frees stored result memory for the given statement handle
- mysqli_stmt_get_warnings — Descrição
- mysqli_stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
- mysqli_stmt_insert_id — Get the ID generated from the previous INSERT operation
- mysqli_stmt_num_rows — Return the number of rows in statements result set
- mysqli_stmt_param_count — Returns the number of parameter for the given statement
- mysqli_stmt_prepare — Prepare a SQL statement for execution
- mysqli_stmt_reset — Resets a prepared statement
- mysqli_stmt_result_metadata — Returns result set metadata from a prepared statement
- mysqli_stmt_send_long_data — Send data in blocks
- mysqli_stmt_sqlstate — Returns SQLSTATE error from previous statement operation
- mysqli_stmt_store_result — Transfers a result set from a prepared statement
- mysqli_store_result — Transfers a result set from the last query
- mysqli_thread_id — Returns the thread ID for the current connection
- mysqli_thread_safe — Returns whether thread safety is given or not
- mysqli_use_result — Initiate a result set retrieval
- mysqli_warning_count — Returns the number of warnings from the last query for the given link