IST - Física MEFT - Programação 19:51:28
19 - May - 2024
  Página de entrada  
  Informações  
  Avaliação  
  Sumários  
  Séries Semanais  
  Trabalhos Finais  
  Bibliografia  
  Manuais  
  Links Úteis  
  HowTo  
  Pagina Web (Exemplo)  
  Turmas de Laboratório  
  Notas Finais e Marcações  
  Contacto  

HowTo: PHP - MySQLi


Sumário
1. Introdução
2. Iniciar uma ligação à base de dados mysqli
3. Questões à base de dados (queries)
4. Documentação e Links Úteis
Início

1. Introdução

O MySQLi é uma extensão permite, em PHP, interagir com a base de dados MySQL. Estão definidas aqui definidos os métodos de acesso a bases de dados. Os métodos em causa podem ser evocados de duas maneiras diferentes: como funções ou como métodos do objecto. No caso de se usarem como funções, o primeiro argumento é a variável associada à ligação.
Início

2. Iniciar uma ligação à base de dados mysqli

  • A ligação à base de dados pode ser feita na instrução de criação do objecto (em que $db é o objecto criado):
    $db = new mysqli ('localhost', 'my_user', 'my_password', 'my_db');

    ou pode criar-se primeiramente o objecto e depois estabelecer a ligação:

    $db = mysqli init ();
    $db->real_connect ('localhost', 'my_user', 'my_password', 'my_db');

    em que o método 'real_connect' retorna um booleano, sendo verdadeiro no caso da ligação ter sido feita com sucesso.

Início

3. Questões à base de dados (queries)

As 'queries' não são mais do que comandos aos 'mysql' e são idênticos aos que se podem fazer na linha de comandos. Aliás, é, por vezes, cómodo começar por fazer os testes na própria linha de comandos e só depois fazer o código de acesso com o PHP.

Assim basta criar uma string com o respectivo pedido, por exemplo, se quiser saber quantas entrados existem numa relação (chamemos-lhe 'rel1'):

$q1 = "SELECT COUNT(*) FROM rel1";

Para saber todas entradas duma tabela, o comando será (em que 'f1' e 'f2' são dois campos de 'rel1'):

$q2 = "SELECT f1, f2 FROM rel1;

Para além de se extrairem resultados, é igualmente possível introduzir valores na base de dados:

$q3 = "INSERT INTO rel1 VALUES (0, \"val1\", \"val2\", ... , \"valN\");

ou alterar os seus valores:

$q4 = "UPDATE rel1 SET f1 = \"xx\" WHERE f2 = \"yy\"";

em que 'f1' e 'f2' são dois quaisquer campos de 'rel1'.

Consultas simples ao SQL:

No modo de consultas simples, a execução é feita pelo método 'query'. Assim, por exemplo (em que '$db' é o objecto criado com a abertura do acesso à base de dados):

$result = $db->query ($q2);

em que '$result' é o retorno do método. O tipo de retorno depende da 'query' em questão. Será 'false' se a 'query' falhar.

Para extrair a informação pode usar-se um dos métodos de 'fetch', por exemplo, 'fetch_array':

while ($row = $result->fetch_array(MYSQLI_BOTH))
printf ("%s ; %s<br>\n", $row[0], $row[1]);

Para libertar a memória associada a um resultado deve fazer-se:

$result->close(); (ou $result->free();)

Consultas preparadas ao SQL:

Nas consultas preparadas usa-se um objecto da classe 'MySQLi_STMT' retornado pelo método 'prepare':

$stmt = $db->prepare($query);

Em seguida usa-se o método 'execute' que executa o resultado anterior:

$stmt->execute();

Depois são passadas as variáveis a usar para obter os resultados:

$stmt->bind_result($x1, $x2);

Para extrair a informação recorre-se igualmente a um ciclo de 'fetch' agora sobre o objecto '$stmt':

while ($stmt->fetch())
printf ("%s ; %s<br>\n", $x1, $x2);

e finalmente faz-se o fecho:

$stmt->close();
Início

4. Documentação e Links Úteis

Início