Estas funções permitem a você acessar os servidoes de banco de dados MySQL. maiores informações sobre o MySQL podem ser encontradas em http://www.mysql.com/.
A documentação para o MySQL pode ser encontrada em http://dev.mysql.com/doc/.
Para ter estas funções disponíveis, você deve compilar o PHP com suporte a MySQL.
Para compilar, simplesmente use a opção de configuração
--with-mysql[=DIR]
aonde o parãmetro opcional [DIR] aponta para o
diretório onde o MySQL esta instalado.
Mesmo sendo esta extensão MySQL compativel com MySQL 4.1.0 e posterior, ela não suporta a funcionalidade extra que estas versões proveem. Para isto, use a extensão MySQLi.
Se você quiser instalar a extensão mysql em conjuno com a extnsão mysqli você deve usar a mesma biblioteca de cliente para evitar quaisquer conflitos.
A opção --with-mysql
é
ativada por padrão. Este é o funcionamento padrão e pode ser desabilitado
com a opção de configuração --without-mysql
.
Se o MySQL for ativado sem especificar o caminho para o diretório de
instalação do MySQL, o PHP irá usar a biblioteca de cliente MySQL embutida.
Usuários que executam outras aplicações que usam o MySQL (por exemplo,
auth-mysql) não devem usar a biblioteca embutida, mas ao invés especificar
o caminho para o diretório de instalação do MySQL, assim:
--with-mysql=/path/to/mysql
.
Isto irá forçar o PHP a usar as bibliotecas de cliente instaladas pelo MySQL, assim
evitando quaisquer conflitos.
A extensão do PHP MySQL é compilada no PHP.
O MySQL não é mais ativado por padrão, assim a DLL
php_mysql.dll deve ser ativada dentro do
php.ini. Também, o PHP precisa acessar a biblioteca de cliente do MySQL. Um arquivo
chamado libmysql.dll é incluso na distribuição PHP do Windows
e para permitir que o PHP converse com o MySQL este arquivo precisa estar
disponível para o sistema Windows na variavél de ambiênte PATH
. Veja o Faq
entitulado "Como eu adiciono o meu
diretório PHP no PATh no Windows" para informação de como fazer isto.
Mesmo que copiar libmysql.dll para o diretório de
sistema do Windows também (porque o diretório de sistema esta por padrão
no PATH
do sistema), isto não é recomendado.
Do mesmo jeito que ativar qualquer extensão do PHP (como php_mysql.dll), a diretiva do PHP extension_dir deve estar definida para o diretório aonde as extensões do PHP estão localizadas. Veja também Instruções de instalação Manual no Windows. Como um exemplo de valor para extension_dir para o PHP 5 é c:\php\ext
Nota: Se ao iniciar o servidor web acontecer um erro similar a este: "Unable to load dynamic library './php_mysql.dll'", isto é porque php_mysql.dll e/ou libmysql.dll não pode ser encontrada pelo sistema.
Atenção |
Quebras e problemas de inicilização do PHP podem ser encontrados ao carregar esta extensão em conjunto com a extensão recode. Veja a extensão recode para maiores informações. |
Nota: Se você precisar de conjuntos de caracteres diferntes de latin (padrão), você terá que instalar um libmysql externa (não embutida) com o suporte ao conjunto de caracteres compilado.
O comportamento dessas funções podem ser modificado pelas configurações do php.ini.
Tabela 1. Opções de configuração do MySQL
Nome | Padrão | Modificável | Modificações | |
---|---|---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM | ||
mysql.max_persistent | "-1" | PHP_INI_SYSTEM | ||
mysql.max_links | "-1" | PHP_INI_SYSTEM | ||
mysql.default_port | NULL | PHP_INI_ALL | ||
mysql.trace_mode | "0" | PHP_INI_ALL | Disponível desde o PHP 4.3.0. | |
mysql.default_socket | NULL | PHP_INI_ALL | ||
mysql.default_host | NULL | PHP_INI_ALL | Disponível desde o PHP 4.0.1. | |
mysql.default_user | NULL | PHP_INI_ALL | ||
mysql.default_password | NULL | PHP_INI_ALL | ||
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.3.2. Available since PHP 4.3.0. |
Breve descrição das diretivas de configuração.
mysql.allow_persistent
booleanQuando permitir conexões persistentes para o MySQL.
mysql.max_persistent
integerO número máximo de conexões persistentes com o MySQL por processo.
mysql.max_links
integerO número maximo de conexões com o MYSQL por processo, incluindo conexões persistentes.
mysql.trace_mode
booleanTrace mode. Quando mysql.trace_mode esta ativado, avisos para procuras table/index scans, conjuntos de resultados não liberados, e erros de SQL serão exibidos. (Introduzido no PHP 4.3.0)
mysql.default_port
string
O número padrão da porta TCP a usar quando conectar com
o servidor do banco de dados se nenhuma outra porta for especificada.
Se nenhum padrão for especificado, aporta será obtida
da variavel de ambiente MYSQL_TCP_PORT
,
da entrada mysql-tcp em
/etc/services ou da constante da compilação
MYSQL_PORT, nesta ordem. Windows irá usar somente
a constante MYSQL_PORT.
mysql.default_socket
stringO nome padrão do socket para usar quando conectar com um servidor de banco de dados local se outro nome de socket não for especificado.
mysql.default_host
stringO servidor padrão para usar quando conectar com um servidor de banco de dados se outro servidor não for encontrado. Não se aplica em Modo seguro de SQL.
mysql.default_user
stringO nome padrão de usuário para conectar ao servidor de banco de dados se outro nome não for especificado. Não se aplica em Modo seguro de SQL.
mysql.default_password
stringA senha padrão para usar ao conectar ao servidor de banco de dados se outra senha não for especificada. Não se aplica em Modo seguro de SQL.
mysql.connect_timeout
integerLimite de tempo da conexão em segundos. No Linux este limite é também usado para a espera da primeira resposta do servidor.
Existem dois tipos de recursos usados no módulo MySQL. O primeiro é o identificador de conexão com o banco de dados, e o segundo é o recurso o qual guarda o resultado de uma consulta.
As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.
Desde PHP 4.3.0 é possivel especificar opções adicionais para as funções mysql_connect() and mysql_pconnect() As seguintes constantes são definidas:
Tabela 2. Constante do cliente MySQL
Constante | Descrição |
---|---|
MYSQL_CLIENT_COMPRESS | Usa o protocolo de compressão |
MYSQL_CLIENT_IGNORE_SPACE | Permite espaço após o nome de função |
MYSQL_CLIENT_INTERACTIVE | Permite interactive_timeout segundos (ao inves de wait_timeout) de inatividade antes de fechar a conexão. |
MYSQL_CLIENT_SSL | Usar encriptação SSL. Esta opção esta disponível apenas com a versão 4.x da biblioteca de cliente MySQL ou mais nova. A versão 3.23.x é distribuida com o PHP 4 e com os binários Windows do PHP 5. |
A função mysql_fetch_array() usa uma constante para cada diferentes tipos de matrizes de resultado. As seguintes constantes são definidas:
Tabela 3. MySQL fetch constants
Constante | Descrição |
---|---|
MYSQL_ASSOC | As colunas são retornadas na matriz tendo o nome do campo como índice da matriz. |
MYSQL_BOTH | As colunas são retornadas na matriz tendo ambos os indices: um numérico e o um com o nome do campo. |
MYSQL_NUM | As colunas são retornadas numa matriz tendo um indice numérico dos campos. Este indice começa com 0, o primeiro campo no resultado. |
Nota: A maioria das funções MySQL aceitam
link_identifier
como o último parâmetro opcional. Se este não for dados, a última conexão aberta é usada. Se não existir, é tentado estabelecer uma conexão com os valores padrão definidos no php.ini. Se não for possível, a função retornará FALSE.
Este exemplo simples mostra como conectar, executar uma consulta, mostrar as linhas do resultado e disconectar do banco de dados MySQL.