Jeśli chcesz tworzyć dynamiczne strony internetowe, które wchodzą w interakcję z bazą danych MySQL, musisz wiedzieć, jak łączyć się z bazą danych i wysyłać do niej zapytania za pomocą PHP. W tym poście na blogu pokażę Ci, jak to zrobić, używając dwóch różnych metod: MySQLi i PDO.

Co to jest MySQLi i PDO?

MySQLi i PDO to dwa rozszerzenia PHP, które umożliwiają pracę z bazami danych MySQL. MySQLi oznacza MySQL Improved, a PDO oznacza PHP Data Objects. Obydwa rozszerzenia obsługują przygotowane instrukcje, które chronią Twoją aplikację internetową przed atakami polegającymi na wstrzykiwaniu kodu SQL. Mają jednak pewne różnice, o których powinieneś wiedzieć przed wybraniem jednego z nich.

MySQLi

MySQLi to rozszerzenie, które działa tylko z bazami danych MySQL. Oferuje zarówno interfejs obiektowy, jak i proceduralny, dzięki czemu możesz wybrać ten, który pasuje do Twojego stylu kodowania. MySQLi jest łatwy w użyciu i posiada wiele funkcji ułatwiających pracę z MySQL.

ChNP

PDO to rozszerzenie współpracujące z 12 różnymi systemami baz danych, w tym z MySQL. Oferuje jedynie interfejs obiektowy, który niektórzy programiści wolą od interfejsu proceduralnego. PDO jest bardziej elastyczne i przenośne niż MySQLi, ponieważ pozwala przełączać się między różnymi bazami danych bez zmiany dużej części kodu.

Jak połączyć się z bazą danych MySQL za pomocą PHP

Zanim będziesz mógł wysłać zapytanie do bazy danych MySQL, musisz nawiązać połączenie z serwerem. Aby to zrobić, musisz podać pewne informacje, takie jak nazwa hosta, nazwa użytkownika, hasło i nazwa bazy danych. Musisz także utworzyć zmienną, która będzie przechowywać obiekt połączenia.

Korzystanie z MySQLi

Aby połączyć się z bazą danych MySQL za pomocą MySQLi, możesz użyć stylu obiektowego lub proceduralnego. Oto kilka przykładów obu:

Styl zorientowany obiektowo

<?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";
?>

Styl proceduralny

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

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

Korzystanie z PDO

Aby połączyć się z bazą danych MySQL za pomocą PDO, należy zastosować następującą składnię:

<?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";
?>

Należy pamiętać, że PDO wymaga prawidłowej nazwy bazy danych, aby się z nią połączyć. Jeśli go nie określisz, zgłosi wyjątek.

Jak wysłać zapytanie do bazy danych MySQL za pomocą PHP

Po nawiązaniu połączenia z bazą danych możesz wykonywać zapytania SQL przy użyciu języka PHP. Aby to zrobić, musisz użyć metody query() lub prepare() obiektu połączenia.

Korzystanie z MySQLi

Aby wysłać zapytanie do bazy danych MySQL za pomocą MySQLi, możesz użyć stylu obiektowego lub proceduralnego. Oto kilka przykładów obu:

Styl zorientowany obiektowo

<?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();
?>

Styl proceduralny

<?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);
?>

Korzystanie z PDO

Aby wysłać zapytanie do bazy danych MySQL przy użyciu PDO, należy użyć metody query() lub prepare() obiektu połączenia. Oto przykład użycia metody 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;
?>

W tym poście na blogu pokazałem, jak połączyć się i wysłać zapytanie do bazy danych MySQL za pomocą PHP. Nauczyłeś się korzystać z dwóch różnych metod: MySQLi i PDO. Obie metody mają swoje zalety i wady, dlatego warto wybrać tę, która najlepiej odpowiada Twoim potrzebom i preferencjom.

Mam nadzieję, że ten post był dla Ciebie przydatny i pouczający. Jeśli masz jakieś pytania lub uwagi, zostaw komentarz poniżej.

Dziękuję za przeczytanie!