Najnowsze tutoriale tworzenie stron internetowych
 

PHP Połączyć się z MySQL


PHP 5 i później może pracować z bazą danych MySQL za pomocą:

  • MySQLi rozszerzeń (the "i" stands for improved)
  • PDO (PHP Data Objects)

Wcześniejsze wersje PHP używane rozszerzenie MySQL. Jednak to rozszerzenie została zaniechana w 2012 roku.


Należy użyć mysqli lub PDO?

Jeśli potrzebujesz krótkiej odpowiedzi, to byłoby "Whatever you like" .

Zarówno MySQLi i PDO mają swoje zalety:

PDO będzie działać na 12 różnych systemów baz danych, gdzie jako MySQLi będzie działać tylko z bazami danych MySQL.

Tak więc, jeśli musisz przełączyć swój projekt, aby użyć innej bazy danych PDO sprawia, że ​​proces łatwy. Trzeba tylko zmienić ciąg połączenia i kilka zapytań. Z MySQLi, trzeba będzie przepisać cały kod - pytania zawarte.

Oba są zorientowane obiektowo, ale MySQLi oferuje także API proceduralną.

Oba obsługują sporządzanych sprawozdań. Przygotowane sprawozdania chronić przed SQL injection i są bardzo ważne dla bezpieczeństwa aplikacji internetowych.


Przykłady MySQL w obu MySQLi i składni PDO

W tym i w następnych rozdziałach pokażemy trzy sposoby pracy z PHP i MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • PDO

Instalacja MySQLi

Dla systemów Linux i Windows: Rozszerzenie MySQLi jest automatycznie instalowany w większości przypadków, gdy jest zainstalowany pakiet php5 mysql.

Szczegóły dotyczące instalacji, przejdź do: http://php.net/manual/en/mysqli.installation.php


Instalacja PDO

Szczegóły dotyczące instalacji, przejdź do: http://php.net/manual/en/pdo.installation.php


Otwiera połączenie do serwera MySQL

Zanim będziemy mogli uzyskać dostęp do danych w bazie danych MySQL, musimy być w stanie połączyć się z serwerem:

Przykład (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

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

Uwaga na przykład obiektowego powyżej: $ connect_error został złamany aż PHP 5.2.9 i 5.3.0. Jeśli potrzebujesz, aby zapewnić zgodność z wersjami PHP przed 5.2.9 i 5.3.0, należy użyć następującego kodu:

// Sprawdź połączenia
jeśli ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

Przykład (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

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

Przykład (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

Zauważ, że w tym przykładzie PDO powyżej mamy również określić bazę danych (myDB) . PDO wymagać ważnej bazy danych, aby połączyć. Jeśli baza danych nie jest określony, jest wyjątek.

Wskazówka: Duża zaletą jest to, że PDO ma klasę wyjątku do obsługi wszelkich problemów, które mogą pojawić się w naszych zapytań do bazy danych. Jeśli jest wyjątek w próba {} bloku skrypt zatrzymuje wykonania i przepływa bezpośrednio do pierwszego catch() {} bloku.


Zamknąć połączenie

Połączenie zostanie automatycznie zamknięte, gdy skrypt kończy. Aby wcześniej zakończyć połączenie, należy użyć następujących czynności:

Przykład (MySQLi Object-Oriented)

$conn->close();

Przykład (MySQLi Procedural)

mysqli_close($conn);

Przykład (PDO)

$conn = null;