PHP are trei moduri diferite prin care se poate conecta si interactiona cu baza de date MySQL : extensia MySQL originala (cu functii), MySQL Improved (MySQLi, obiect-orientat), sau PHP Data Objects (PDO, obiect-orientat).
Ele nu pot fi amestecate in acelasi script. Extensia originala MySQL nu mai este activ dezvoltata si nu este recomandat pentru proiecte PHP-MySQL noi.
Documentatia PHP descrie MySQLi ca fiind optiunea preferata recomandata de MySQL pentru proiecte noi.

Conectare la MySQL

Inainte de a putea accesa informatii din baza de date , trebuie creata o conexiune cu serverul MySQL.
Pentru a va conecta la un server MySQL cu PHP si MySQLi, se creaza o instanta de obiect mysqli, cu formula new mysqli(), la care se adauga datele de conectare.
  - Sintaxa:
$conn = new mysqli($servername, $username, $password, $database, $port);
- $servername - Specifica serverul la care sa se conecteze. Daca adaugati valoarea NULL sau un sir gol "", serverul va folosi valoarea standard: "localhost".
- $username - Specifica numele de utilizator la baza de date MySQL.
- $password - Specifica parola utilizatorului pentru conectare.
- $database - Optional. Numele bazei de date care contine tabelele.
- $port - Optional. Specifica port-ul prin care se face conectarea la serverul MySQL, standard este 3306
  - Exemplu:
<?php
// conectare la server
$conn = new mysqli('localhost', 'root', 'pass', 'dbname');

// verifica conexiunea
if (mysqli_connect_errno()) {
 exit('Connect failed: '. mysqli_connect_error());
}
?>
- Aceast cod face conectarea la baza de date numita "dbname", si stocheaza conexiunea in instanta de obiect $conn.
Daca exista erori la conexiune, mysqli_connect_errno() returneaza codul de eroare.

Inchiderea unei conexiuni

Conexiunea va fi inchisa automat cand scriptul se termina. Se recomanda totusi sa inchideti conexiunea mai devreme, cand scriptul nu o mai foloseste. Acest lucru va elibera memoria folosita de conexiune. Pentru a inchide o conexiune se foloseste metoda close() din clasa MySQLi.
  - Exemplu:
<?php
// conectare la server
$conn = new mysqli('localhost', 'root', 'pass', 'dbname');

// verifica conexiunea
if (mysqli_connect_errno()) {
 exit('Connect failed: '. mysqli_connect_error());
}

// ceva cod

$conn->close(); // termina conectarea

// alt cod PHP 
?>

Creare baza de date cu MySQLi

Pentru a stoca informatii in MySQL, este nevoie de o baza de date.
Comanda CREATE DATABASE este folosita pentru a crea o baza de date in MySQL.
  - Sintaxa:
CREATE DATABASE database_name
Pentru a face un script PHP sa execute instructiunile SQL, mai intai trebuie sa creati o instanta de obiect mysqli, care va contine conexiunea la server, apoi folositi metoda query() din clasa MySQLi.
  - Sintaxa:
mysqliObj->query($sql_query)
- mysqliObj - este instanta de obiect mysqli, creata cu new mysqli()
- $sql_query - este un sir cu instructiuni SQL.
Aceasta metoda trimite interogarea sau comanda la serverul MySQL, va returna obiectul rezultat, sau TRUE la succes, FALSE in caz de eroare.

Exemplul urmator creaza o baza de date numita "tests":
<?php
// conectare la serverul MySQL
$conn = new mysqli('localhost', 'root', 'pass');

// verifica conexiunea
if (mysqli_connect_errno()) {
 exit('Conectare nereusita: '. mysqli_connect_error());
}

// interogare sql cu CREATE DATABASE
$sql = "CREATE DATABASE `tests` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";

// executa interogarea $sql pe server pentru a crea baza de date
if ($conn->query($sql) === TRUE) {
 echo 'Baza de date "tests" a fost creata';
}
else {
 echo 'Error: '. $conn->error;
}

$conn->close();
?>
- Cand doriti sa creati o noua baza de date, se adauga doar primele trei argumente la obiectul mysqli (servername, username si password). Dar daca vreti sa folosesti un port specific, adaugati un sir gol "" pentru argumentul ce reprezinta numele bazei de date :
                  Exemplu:   new mysqli('localhost', 'root', 'pass', '', port)

- Instructiunea suplimentara: DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci seteaza baza de date sa foloseasca UTF-8 charset pentru codarea caracterelor.
Exemplul de mai sus creaza o baza de date numita "test", afisaza "Baza de date "tests" a fost creata", sau un mesaj de eroare in caz de esec.
$conn->error (sau poate fi folosit mysqli_error($conn) ) returneaza un sir cu o descriere a ultimei erori(daca exista).
 

Comenzile SQL sunt case-insensitive, astfel puteti folosi "CREATE DATABASE" sau "create database". Dar numele tabelelor si coloanelor sunt case-sensitive.

Creare tabel in MySQL

Dupa ce ati realizat o conexiune la o baza de date, puteti crea tabele in ea. Tabelele sunt elementele care stocheaza datele in baza de date.
Pentru a crea un tabel in MySQL, se foloseste comanda CREATE TABLE, apoi se apeleaza metoda query().
  - Sintaxa:
CREATE TABLE `table_name`
(
`nume_coloana1` tip_date,
`nume_coloana2` tip_date,
`nume_coloana3` tip_date,
....
)
- tip_date specifica tipul de date pe care o coloana le poate contine. Pentru o lista cu tipurile de date MySQL, vedeti lectia precedenta: PHP MySQL - Introducere si Tipuri de date.
Dupa "tip_date", se pot specifica si alte atribute optionale pentru fiecare coloana: Fiecare tabel ar trebui sa aiba o coloana primary key. Valoarea ei trebuie sa fie unica pentru fiecare inregistrare din tabel.

  - Exemplu:
<?php
// conectare la serverul MySQL 
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verifica conexiunea
if (mysqli_connect_errno()) {
 exit('Connect failed: '. mysqli_connect_error());
}

// interogare sql pentru CREATE TABLE
$sql = "CREATE TABLE `users` (
 `id` INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 `name` VARCHAR(25) NOT NULL,
 `pass` VARCHAR(18) NOT NULL,
 `email` VARCHAR(45),
 `reg_date` TIMESTAMP
 ) CHARACTER SET utf8 COLLATE utf8_general_ci"; 

// Executa interogarea $sql query pe server pentru a crea tabelul
if ($conn->query($sql) === TRUE) {
 echo 'Table "users" successfully created';
}
else {
 echo 'Error: '. $conn->error;
}

$conn->close();
?>
- Acest cod va crea un tabel numic "users" in baza de date "tests", cu cinci coloane (id , name , pass , email si reg_date), seteaza coloana 'id' ca campul primary key.
In imaginea de mai jos puteti vedea descrierea tabelului "users".

Creare tabel users cu MySQLi
 

In comenzile SQL este recomandat ca numele de tabel si coloane sa fie adaugat intre apostrof ` ` (caracterul de langa butonul cu numerul 1 pe tastatura). Aceasta este sintaxa corecta dar nu este strict necesara.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce atribut poate fi utilizat pentru a adauga stiluri CSS direct in tag-ul HTML?
type style class
<div style="width: 80%; border: 3px solid #888888;">Continut</div>
Care din metodele proprietatii CSS transform distorsioneaza elementul HTML la un anumit unghi (inclusiv continutul lui)?
translate() scale() skew()
#un_id {
  transform: skew(20deg, 25deg);
  -ms-transform: skew(20deg, 25deg);   /* IE 9 */
  -webkit-transform: skew(20deg, 25deg);   /* Safari and Chrome */
}
Clic pe functia care poate converti un obiect Date in Sir.
indexOf() toString() getDate()
var rightnow = new Date();
alert( rightnow.toString() );
Care functie aplica o alta functie la elementele unui array?
array_merge() array_search() array_map()
$arr = arra("abc", "<p>xyz</p>", "<em>PHP</em>");
// aplica functia strip_tags() ca sa stearga tag-urile HTML din fiecare element din %arr
$arr = array_map("strip_tags", $arr);
}
Cum se spune "sambata" in limba engleza?
Sunday Saturday Monday
On Saturday I visit my grandparents.
- Sambata imi vizitez bunicii.
Cum se spune "sambata" in limba spaniola?
domingo lunes sábado
Sábado visito mis abuelos.
- Sambata imi vizitez bunicii.
PHP MySQL - utilizare MySQLi

Last accessed pages

  1. Verbe frazale din limba Engleza (9344)
  2. Gramatica limbii engleze - Prezentare Generala (61834)
  3. Trecutul simplu si continuu - Past Tense Simple and Continuous (22365)
  4. Verbe modale - Modal verbs - CAN, COULD, MAY, MIGHT, MUST (18286)
  5. Diferenta dintre Like si As (2868)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (1611)
  2. Prezentul simplu si continuu - Present Tense Simple and Continuous (985)
  3. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (758)
  4. Trecutul simplu si continuu - Past Tense Simple and Continuous (736)
  5. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (714)