Połączenie z bazą danych w PHP

Nawiązanie połączenia z bazą danych to podstawa podczas pisania aplikacji internetowej, sklepu czy strony. Pokażę jak połączyć się z bazą danych i dlaczego akurat w taki sposób.

Wiem, że to żaden odkrywczy wpis, jednak w sieci jest sporo artykułów, które pokazują jak nawiązać połączenie i…. robią to wykorzystując mysql_connect. Chcę powiedzieć na wstępie: zapomnij o mysql_connect i przejdź do PDO, który jest jednym z punktów wpisu.

mysql_connect

Już na wstępie zaznaczam – nie używaj tej funkcji! Aby artykuł był “wyczerpany” musiałem o tym napisać. To przestarzałe rozwiązanie

  • nie działa w PHP7 – a przecież chcemy korzystać z dobrodziejstw nowych wersji PHP 🙂
  • proceduralne podejście
  • brak bindowania parametrów (możliwy SQL-Injection)

mysqli_connect

Podejście proceduralne:

<?php
$host = 'localhost';
$username = 'username';
$password = 'password';
$dbName = 'dbName';

$conn = mysqli_connect($host, $username, $password, $dbName);

Jak widać, korzystamy po prostu z funkcji wbudowanej w PHP i połączenie zostało nawiązane. Oczywiście o ile podane dane są poprawne.

Podejście obiektowe:

<?php
$host = 'localhost';
$username = 'username';
$password = 'password';
$dbName = 'dbName';

$conn = new mysqli($host, $username, $password, $dbName);

Tworzymy nowy obiekt, a jako parametry konstruktora podajemy host, nazwę użytkownika, hasło i nazwę bazy danych.

Cechy mysqli_connect:

  • działa z PHP7
  • wspiera tylko bazę danych MySQL
  • wspiera prepare statement (zabezpiecza przed SQL-Injection)

PDO

Zalecam polubienie się z PDO na początku Twojej przygody z PHP 🙂

Jak nawiązać połączenie z bazą danych wykorzystując PDO?

<?php
$host = 'localhost';
$username = 'username';
$password = 'password';
$dbName = 'dbName';

$conn = new PDO("mysql:host=$host;dbname=$dbName", $username, $password);

Tworzymy nowy obiekt z danymi do połączenia: host, nazwa bazy danych, nazwa użytkownika oraz hasło:

Cechy:

  • wspiera 12 baz danych
  • wspiera named parameters – łatwiejsze bindowanie wartości w zapytaniu
  • wspiera prepare statement (zabezpiecza przed SQL-Injection)

Lista wspieranych baz danych przez PDO

  • CUBRID
  • MS SQL Server
  • Firebird
  • IBM
  • Informix
  • MySQL
  • MS SQL Server
  • Oracle
  • ODBC and DB2
  • PostgreSQL
  • SQLite
  • 4D

https://www.php.net/manual/en/pdo.drivers.php

You May Also Like

About the Author: Mateusz Dudek

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *