PHP: Lição 3

Postado por 4luada, 31 de março de 2014, às 21:52

0 Comentários

Continuando com meu estudo de PHP, comecei a estudar MySQL para manipular database. Segui pelo guia de PHP do w3schools, que tem uma seção de Database que explica o básico de MySQL. O site tem um tutorial voltado completamente para SQL, mas deixarei para outro momento.

O PHP tem a capacidade de manipular databases, e MySQL é um sistema de database frequentemente usada em conjunto com PHP para se manipular databases na web. O MySQL roda no servidor, é rádpido e confiável, compilável em várias plataformas, e é gratuito.

O MySQL guarda dados em tabelas, de forma a ser muito útil na hora de classificar os dados. Ele usa queries para fazer pedidos de dados.

No meu caso, o WAMP já instalou o MySQL no servidor PHP.

Conexão com servidor MySQL

A primeira coisa a se fazer antes de qualquer acesso ao database é estabelecer uma conexão ao servidor MySQL através da função:
mysqli_connect([<servidor>],[<username>],[<senha>],[<db_name>]).
A conexão é interrompida automaticamente ao final do script, mas para fechar a conexão antes, há a função:
mysqli_close(<conexão>).

<?php
$conection = mysqli_connect("example.com","peter","abc123","my_db");
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_close($conection); ?>

OBS: SQL não é case-sensitive, ou seja, não diferencia letras maiúsculas de minúsculas.

Criando Database, Tabelas, Chaves Primárias e Registros

Antes de tudo, qualquer comando em SQL é feita em PHP através do comando:
mysqli_query(<conection>, <sql_statement>);

Novo database
O comando para se criar um novo database é:
CREATE DATABASE <db_name>

Nova tabela
Ao se criar uma nova tabela, já se define os nomes das colunas (campos) e os tipos de dados que cada uma irá conter. O comando para se criar uma nova tabela é:
CREATE TABLE <table_name>(<col_name> <type>, ...)
Dentro do parênteses se define as colunas da tabela. Confira os tipos dos dados aqui. Os principais tipos são:

  • String de tamanho fixo (até 255): CHAR(<max_length>)
  • String grande: TEXT
  • Inteiro: INT[(<max_digits>)]
  • Ponto flutuante: FLOAT[(<max_digits>, <max_decimal_digits)]
  • Data (formato YYYY-MM-DD): DATE()
  • Hora (formato HH:MM:SS): TIME()
  • Data e Hora (formato YYYY-MM-DD HH:MM:SS): DATETIME()

Chave Primária
Toda linha da tabela deve ter um campo "Chave Primária", usada para identificar de modo único e exclusivo cada linha da tabela. Portanto cada valor de Chave Primária deve ser único, não pode repetir e nem ser null. Normalmente a "chave primária" é um número ID (de identificação), cujo valor é criado automaticamente, e incrementado automaticamente ao se criar um novo registro, tudo isso adicionando AUTO_INCREMENT depois de definir o tipo de dado da coluna. E para garantir que o valor do campo não é nulo com NOT NULL. Essas declarações podem ser usadas para qualquer campo, não só para o campo da Chave Primária. Para definir um campo como Chave Primária, utiliza-se a declaração PRIMARY KEY(<coluna>).

$sql_statement = "CREATE TABLE Persons (
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(id),
    name CHAR(30),
    age INT )";

Novo Registro
Um registro corresponde a uma linha da tabela de database, contendo valores para os campos (colunas). Para se inserir um novo registro, utiliza-se o comando:
INSERT INTO <table> [(<column>,...)] VALUES (<value>)

Manipulando dados

Selecionar Registros
Para se selecionar dados do database, utiliza-se o comando:
SELECT <colunas> FROM <table>
as colunas do comando determinam quais dados de cada registro é necessária (se forem todas as colunas, pode-se usar o asterisco '*'). Após obter a seleção de dados, pode-se usar a função mysqli_fetch_array(<sql_selection>) para obter uma linha como uma array, usando o nome da coluna como chave. Note o exemplo:

$selection = mysqli_query($conection,"SELECT * FROM Persons");
while($row = mysqli_fetch_array($selection)){
    echo $row['name'] . " is " . $row['age'] . &quto;years old.";
    echo "<br>";
}

Para filtrar uma seleção, limitando-a para apenas registros que cumpram um determinado critério, utiliza-se o termo WHERE na seleção. Por exemplo:

SELECT * FROM Persons WHERE age=20

O termo ORDER BY <coluna> ASC/DESC ordena os registros selecionados de forma ascendente (default) ou descendente pelo campo determinado. É possível ordenar por mais de uma coluna - neste caso, a segunda coluna é usada apenas se os valores da primeira coluna forem iguais.

Atualizar Registros
Para se editar um dado em um registro, utiliza-se o comando:
UPDATE <table> SET col1=val1, col2=val2, ... [WHERE colX=valX AND/OR colY=valY]
o termo WHERE especifica quais registros devem ser editados. Se o termo for omitido, todos os registros serão modificados.

Deletar Registros
Para deletar registros, há o comando:
DELETE FROM <table> WHERE col=value
onde o WHERE especifica os registroa a serem deletados. Se o termo for omitido, todos os registros serão deletados.

Marcadores: ,


0 Comentários

Postar um comentário