Dacă doriți să creați pagini web dinamice care interacționează cu o bază de date MySQL, trebuie să știți cum să vă conectați și să interogați baza de date folosind PHP. În această postare pe blog, vă voi arăta cum să faceți asta folosind două metode diferite: MySQLi și PDO.

Ce sunt MySQLi și PDO?

MySQLi și PDO sunt două extensii PHP care vă permit să lucrați cu baze de date MySQL. MySQLi înseamnă MySQL Îmbunătățit, iar PDO înseamnă PHP Data Objects. Ambele extensii acceptă declarații pregătite, care vă protejează aplicația web de atacurile de injecție SQL. Cu toate acestea, au unele diferențe de care ar trebui să fii conștient înainte de a alege unul față de celălalt.

MySQLi

MySQLi este o extensie care funcționează numai cu baze de date MySQL. Oferă atât o interfață orientată pe obiecte, cât și una procedurală, astfel încât să o poți alege pe cea care se potrivește stilului tău de codare. MySQLi este ușor de utilizat și are multe funcții care facilitează lucrul cu MySQL.

DOP

PDO este o extensie care funcționează cu 12 sisteme de baze de date diferite, inclusiv MySQL. Oferă doar o interfață orientată pe obiecte, pe care unii dezvoltatori o preferă față de cea procedurală. PDO este mai flexibil și mai portabil decât MySQLi, deoarece vă permite să comutați între diferite baze de date fără a modifica mult din cod.

Cum să vă conectați la o bază de date MySQL cu PHP

Înainte de a putea interoga o bază de date MySQL, trebuie să stabiliți o conexiune la server. Pentru a face acest lucru, trebuie să furnizați câteva informații, cum ar fi numele de gazdă, numele de utilizator, parola și numele bazei de date. De asemenea, trebuie să creați o variabilă care să dețină obiectul de conexiune.

Folosind MySQLi

Pentru a vă conecta la o bază de date MySQL folosind MySQLi, puteți utiliza fie stilul orientat pe obiecte, fie stilul procedural. Iată câteva exemple din ambele:

Stil orientat pe obiecte

<?php
// Create connection
$conn = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Stilul procedural

<?php
// Create connection
$conn = mysqli_connect("localhost", "username", "password", "database");

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Folosind PDO

Pentru a vă conecta la o bază de date MySQL folosind PDO, trebuie să utilizați următoarea sintaxă:

<?php
// Create connection
$conn = new PDO("mysql:host=hostname;dbname=database", "username", "password");

// Check connection
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
?>

Rețineți că PDO necesită un nume valid de bază de date pentru a vă conecta. Dacă nu specificați una, va arunca o excepție.

Cum să interoghezi o bază de date MySQL cu PHP

Odată ce aveți o conexiune la baza de date, puteți executa interogări SQL folosind PHP. Pentru a face acest lucru, trebuie să utilizați fie metoda query(), fie metoda prepare() a obiectului de conexiune.

Folosind MySQLi

Pentru a interoga o bază de date MySQL folosind MySQLi, puteți utiliza fie stilul orientat pe obiecte, fie stilul procedural. Iată câteva exemple din ambele:

Stil orientat pe obiecte

<?php
// Create connection
$conn = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Check if the query returned any rows
if ($result->num_rows > 0) {
  // Output data of each row
  while($row = $result->fetch_assoc()) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
$conn->close();
?>

Stilul procedural

<?php
// Create connection
$conn = mysqli_connect("localhost", "username", "password", "database");

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

// Check if the query returned any rows
if (mysqli_num_rows($result) > 0) {
  // Output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
mysqli_close($conn);
?>

Folosind PDO

Pentru a interoga o bază de date MySQL folosind PDO, trebuie să utilizați fie metoda query(), fie metoda prepare() a obiectului de conexiune. Iată un exemplu de utilizare a metodei query():

<?php
// Create connection
$conn = new PDO("mysql:host=localhost;dbname=database", "username", "password");

// Check connection
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Check if the query returned any rows
if ($result->rowCount() > 0) {
  // Output data of each row
  while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
$conn = null;
?>

În această postare pe blog, v-am arătat cum să vă conectați și să interogați o bază de date MySQL folosind PHP. Ați învățat cum să utilizați două metode diferite: MySQLi și PDO. Ambele metode au avantajele și dezavantajele lor, așa că ar trebui să o alegeți pe cea care se potrivește cel mai bine nevoilor și preferințelor dumneavoastră.

Sper că ați găsit această postare utilă și informativă. Dacă aveți întrebări sau feedback, vă rugăm să lăsați un comentariu mai jos.

Vă mulțumim pentru citit!