Apesar do php ser uma linguagem que suporta conexão com todos os bancos de dados “famosos” do mercado, basta entender um pouco do assunto para perceber que a maioria dos desenvolvedores geralmente optam pelo MySQL na hora de implementar um projeto. Isso acontece talvez por ser um SGBD gratuito, robusto e com vasta documentação e discussões existentes em vários idiomas.
Por isso no post de hoje vou abordar os principais comandos php para se trabalhar com MySQL visando auxiliar a familiarização dos iniciantes com a linguagem e o banco de dados.
Primeiramente e mais importante, é necessário entender como é feito a conexão de uma aplicação com o servidor de banco de dados. Veja:
1 2 3 4 | <?php mysql_connect('localhost', 'root', '123321') or die ('Erro ao conectar com o servidor MySQL'); mysql_select_db('banco1') or die ('Erro ao selecionar o banco de dados'); ?> |
A função mysql_connect é responsável por criar a comunicação com o servidor MySQL. Essa função deve receber os parâmetros host, user e password. Depois disso, é necessário informar também o banco de dados(schema) que será utlizado. Para isso devemos utilizar a função mysql_select_db.
Com a conexão efetuada, agora estamos prontos para inserir/editar/excluir/recuperar informações no banco de dados. Para isso, destacamos a função mysql_query, que possibilita a execução de códigos DDL(CREATE, ALTER, etc.), DML(INSERT, UPDATE, DELETE) e SQL(SELECT).
Vejamos um exemplo de utilização da função mysql_query para um código de inserção(DML):
1 2 3 | <?php $rs = mysql_query("INSERT INTO tb_cliente(id, nome) VALUES ('1000', 'João')"); ?> |
Em execuções de códigos DML a função retorna true(1) em caso de sucesso e false(0) em caso de falha. Para saber o número de linhas afetadas na tabela em que a query foi executada, utilize a função mysql_affected_rows.
1 2 3 4 | <?php $rows_affected = mysql_affected_rows(); echo $rows_affected . "foram afetadas"; ?> |
Voltando à função mysql_query, agora vamos testar uma consulta SQL.
1 2 3 | <?php $rs = mysql_query("SELECT id, nome FROM tb_cliente"); ?> |
Na execução de consultas a função pode retornar false em caso de erro ou o resultado(resource) da própria em caso de sucesso. Com informações do banco de dados recuperadas para a nossa aplicação, agora podemos manipulá-las convertendo a variável $rs. Isso é possível utilizando a função mysql_fetch_array ou mysql_fetch_object. A seguir dois exemplos, um para cada função.
1 2 3 4 5 6 7 8 9 10 11 | <?php //convertendo para objeto while($reg_obj = mysql_fetch_object($rs)){ echo $reg_obj->id . " - " . $reg_obj->nome; } //convertendo para array while($reg_array = mysql_fetch_array($rs)){ echo $reg_array["id"] . " - " . $reg_array["nome"]; } ?> |
Como em uma consulta podemos recuperar várias linhas, utilizei um laço de repetição para percorrer todo o resource e “printar” na tela o id e nome de cada registro encontrado na tabela tb_cliente através da query. As duas funções possuem o mesmo objetivo, ou seja, converter o resultado de uma consulta SQL em uma variável php capaz de armazenar os dados. A diferença é que uma os passa para um array e a outra para um objeto .
Para descobrir o número de linhas retornadas por uma determinada consulta, podemos utilizar a função mysql_num_rows passando também como parâmetro o resource de uma query.
1 2 3 4 | <?php $num_regs = mysql_num_rows($rs); echo "A consulta retornou" . $num_regs . "registro(s)"; ?> |
E aqui finalizo o post de hoje. É claro que abordei apenas as funções básicas para se trabalhar php com mysql. Existem diversas outras, mas isso é assunto para um outro dia
Abs.