Como usar PHP para interagir com MySQL

• Introdução. Este artigo irá discutir a forma de conectar PHP e MySQL, para criar uma dinâmica de dados. Vou assumir que você já tem uma cópia PHP e MySQL instalado em seu sistema e todas elas funcionam. Além disso, vou supor que você tenha conhecimentos básicos sobre PHP PHP incluindo sintaxe e como executar um script PHP.

•    PHP e MySQL. PHP já inclui um módulo na sua distribuição do MySQL, assim você não vai precisar instalar um módulo de software adicional.

•    Crie MySQL usuário.  Para criar um nome de  usuário e senha para executar a aplicação MySQL console. Você deve se logar como root, em seguida, execute o comando SQL:

CREATE DATABASE db_test;
USO db_test;
CREATE TABLE tbl_phonebook
(
phone_id int chave primária não NULL AUTO_INCREMENT,
phone_name VARCHAR (40),
phone_number VARCHAR (40),
ÍNDICE phone_name_idx (phone_name),
ÍNDICE phone_number_idx (phone_number)
);
GRANT SELECT, UPDATE, DELETE, INSERT TO db_test .*
TO 'test_user' IDENTIFICADOS PELO 'test_user';

Depois de executar os comandos SQL, MySQL irá criar um banco de dados chamado db teste que contém uma tabela chamadatbl_phonebook. Vamos usar esta tabela para nossa amostra de aplicação web.

•    Ligar a base de dados MySQL. Para estabelecer a ligação a uma base de dados MySQL, você precisa ligar mysql_connect () ou mysql_pconnect (). Basicamente eles são todos semelhantes, exceto a segunda que irá criar uma conexão persistente. Uma conexão persistente é uma conexão que persiste, mesmo quando a conexão é fechada.

<? php
$ link = mysql_connect ( 'localhost', 'test_user', 'test_user');
persist_link $ = mysql_pconnect ( 'localhost', 'test_user', 'test_user');
?>
mysql_pconnect () é mais rápido que o mysql_connect () porque elimina as despesas gerais em estabelecer uma conexão com banco de dados MySQL. Se mysql_pconnect () verificar que uma conexão persistente já está disponível para um usuário, ele irá usá-la, caso contrário, ele cria nova ligação.
Após a ligação à conclusão, mysql_connect () e mysql_pconnect () retorne um identificador para conexão.

•    Selecionando um banco de dados para uso.Para selecionar banco de dados para utilização, deve ligar para usomysql_shutdown (). Esta função exige um nome do banco de dados e alça opcional de conexão de dados. Se omitir o cabo da conexão, ele irá usar a conexão atualmente aberta.

<? php
$ link = mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test', $ link);
?>

•    Selecionar um banco de dados é uma etapa opcional, que voce pode passar adiante. No entanto, se você ignorá-lo, você deve incluir o nome do banco de dados e o nome tabela para acessar uma tabela. Por exemplo, para acessar tbl_phonebook você deve fornecer o nome completo db_test.tbl_phonebook  em vez de  tbl_phonebook. Por favor, note que você deve usar um período para separar o nome do banco de dados e o nome tabela.

•    Executa comando SQL.Depois de ter uma conexão válida e ter selecionado uma base de dados, você estará pronto para executar o comando SQL para fazer alguma manipulação de dados. Para executar o comando SQL, use mysql_query ()function.

Esta função exige, pelo menos, um parâmetro, que é o comando SQL que pretende executar. O Segundo parâmetro é a ligação que pretende utilizar. Este parâmetro é opcional. Se omitir isso, a conexão é usada atualmente aberta. Se não houver nenhuma ligação aberta, esta função tentará estabelecer uma nova ligação.

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "SELECT * FROM tbl_phonebook";
mysql_query ($ sql);
?>

•    Inserindo novos dados na base de dados. Para inserir um novo registro para o banco de dados, você deve executar a declaração INSERT. Por exemplo:

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "INSERT INTO tbl_phonebook
(
phone_name,
phone_number
)
VALORES
•    (
'Johny Greenwood ",
«+6281455632112'
) ";
mysql_query ($ sql);
?>

Para a operação INSERT, para saber se a execução foi bem sucedida ou não, nós usamos retorno pelo valor mysql_query (). Ele retorna valor booleano, ou seja, se ele conseguiu TRUE ou FALSE se ele falhou.

Para saber quais registros que foram afetados pela execução deste comando SQL, que chamamos mysql_affected_rows ().Essa função tem um parâmetro com  conexão opcional. Se é omitida a corrente de conexão aberta será utilizada. Esta função retorna o número de linhas afetadas.

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "INSERT INTO tbl_phonebook
(
phone_name,
phone_number
)
VALORES
(
'Johny Greenwood ",
«+6281455632112'
) ";
mysql_query ($ sql);
print ( 'Número de linhas afetadas:'. mysql_affected_rows ());
?>

•    A recuperar dados de um banco de dados.Para recuperar dados de um banco de dados, usamos o comando SELECT. Este exemplo foi exibido anteriormente. Aqui, vamos mostrar-lhe novamente.

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "SELECT * FROM tbl_phonebook";
mysql_query ($ sql);
?>

Esta parte do código acima não vai ser útil. Para tornar os dados disponíveis para visualização, temos de ir buscar as linhas. Se usamos mysql_query () para a operação SELECT, ele irá retornar recursos para linhas de instrução SELECT. Para buscar os dados a partir deste recurso que usamos mysql_fetch_row (), mysql_fetch_assoc (), mysql_fetch_array () ou mysql_fetch_object. Toas as vezes que o mysql_fetch_ ***() é chamado,  o cursor de banco de dados é incrementado para o próximo dado. Se estes retornarem NULL, o cursor está no final do arquivo (EOF), e por isso não há mais dados para retornar.

mysql_fetch_rows () irá buscar os dados e retornar dados como uma matriz numérica. Por exemplo:

Uso de mysql_fetch_rows ():
<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "SELECT * FROM tbl_phonebook";
$ res = mysql_query ($ sql);
if ($ res)
(
while ($ data = mysql_fetch_row ($ res))
(
print ( "<p> Nome:". $ dados [1]);
print ( "Telefone:". $ dados [2 ]."</ p> ");
)
mysql_free_result ($ res);
)
?>

Dados do campo phone e name é devolvido no índice número 1, porque estamos selecionado todos os campos. Então índice 0 contém dados de campo phone_id que o campo phone e_number será devolvida no índice 2.

mysql_free_result () libera recursos devolvidos pela mysql_query (). PHP automaticamente libera todos os recursos quando o script for concluído, por isso chamar o mysql_free_result () é facultativa, mas com certeza um bom hábito de programação.

mysql_fetch_row () irá buscar os dados e retornar os dados como um array associativo. Por exemplo:
Uso de mysql_fetch_assoc ():
<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "SELECT * FROM tbl_phonebook";
$ res = mysql_query ($ sql);
if ($ res)
(
while ($ data = mysql_fetch_assoc ($ res))
(
print ( "<p> Nome:". $ dados [ 'phone_name']);
print ( "Telefone:". $ dados [ 'phone_number']."</ p> ");
)
mysql_free_result ($ res);
)
?>
Note que o nome do campo é utilizado para indexar o array.

mysql_fetch_array () é uma combinação de mysql_fetch_row () e mysql_fecth_assoc (). Ele retorna um array numérico, bem como um array associativo.

mysql_fetch_object () recupera as linhas e retorna os dados como um objeto. Por exemplo:

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "SELECT * FROM tbl_phonebook";
$ res = mysql_query ($ sql);
if ($ res)
(
while ($ data = mysql_fetch_object ($ res))
(
print ( "<p> Nome:". $ dados-> phone_name);
print ( "Telefone:". $ dados-> phone_number. "</ p>");
)
mysql_free_result ($ res);
•    )
?>
Para saber quantas linhas foram retornadas pela mysql_query (), pode-se chamar mysql_num_rows (). Ele requer um parâmetro, ou seja, devolvidos pelo mysql_query recurso ().
tot_record $ = mysql_num_rows ($ res);

•    Atualizando dados. Para atualizar os dados  você  deve executar o comando UPDATE.

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "UPDATE tbl_phonebook SET phone_number ='0135928549 'WHERE phone_id = 1";
$ res = mysql_query ($ sql);
if ($ res)
(
print ( 'Atualização sucesso ");
) Else
print ( "Atualização falhou ');
?>
Semelhante ao INSERT, o comando UPDATE não gera um conjunto de resultados, mas apenas o valor booleano; VERDADEIRO se for bem sucedido de outra forma vai ser FALSO. Para saber quantas linhas serão afetadas pelo comando UPDATE, use mysql_affected_rows ().

•    Removendo dados.
Para remover um registro  você pode usar o comando DELETE:

<? php
mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test');
$ sql = "DELETE FROM tbl_phonebook ONDE phone_id = 1";
$ res = mysql_query ($ sql);
if ($ res)
(
print ( "Telefone" ID = 1 apagado ');
) Else
print ( 'Não foi possível excluir');
•    ?>

•    Fechando conexão.
Para fechar o que temos aberto, use o que chamamos mysql_close (). Ele requer um parâmetro opcional, ou seja, uma conexão para fechar. Se nós queremos fechar
a conexão atualmente aberta, omitimos o parâmetro opcional.


<? php
$ link = mysql_connect ( 'localhost', 'test_user', 'test_user');
mysql_shutdown ( 'db_test', $ link);
$ sql = "SELECT * FROM tbl_phonebook";
$ res = mysql_query ($ sql, $ link);
if ($ res)
(
while ($ data = mysql_fetch_object ($ res))
(
print ( "<p> Nome:". $ dados-> phone_name);
print ( "Telefone:". $ dados-> phone_number. "</ p>");
)
mysql_free_result ($ res);
)
mysql_close ($ link);
?>

•    Conclusão. Temos discutido passos básicos para deixar interagir PHP com MySQL, incluindo a forma de estabelecer uma conexão de dados, como selecionar uma base de dados ativa, e como executar um comando SQL.