Ultimele tutoriale de dezvoltare web
 

PHP Conectarea la MySQL


PHP 5 și mai târziu poate lucra cu o bază de date MySQL folosind:

  • Extensia MySQLi (the "i" stands for improved)
  • DOP (PHP Data Objects)

Versiunile anterioare ale PHP utilizează extensia MySQL. Cu toate acestea, această extensie a fost depreciat în 2012.


Ar trebui să mă MySQLi sau DOP?

Dacă aveți nevoie de un răspuns scurt, ar fi "Whatever you like" .

Atât MySQLi și DOP au avantajele lor:

DOP va lucra la 12 sisteme de baze de date diferite, în cazul în care ca MySQLi va funcționa doar cu baze de date MySQL.

Deci, dacă trebuie să comutați proiectul de a utiliza o altă bază de date, DOP face procesul de ușor. Trebuie doar să schimbați șirul de conectare și câteva întrebări. Cu MySQLi, va trebui să rescrie întregul cod - interogări incluse.

Ambele sunt orientate-obiect, dar, de asemenea, MySQLi oferă un API procedural.

Ambele susține declarațiile făcute. Declarațiile preparate proteja de injecție SQL, și sunt foarte importante pentru securitatea aplicațiilor web.


Exemple MySQL în ambele MySQLi și DOP Sintaxa

În acest sens, iar în capitolele următoare vom demonstra trei moduri de a lucra cu PHP si MySQL:

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

MySQLi de instalare

Pentru Linux și Windows: Extensia MySQLi este instalat automat în cele mai multe cazuri, atunci când este instalat pachetul PHP5 MySQL.

Pentru detalii despre instalare, du - te la: http://php.net/manual/en/mysqli.installation.php


DOP de instalare

Pentru detalii despre instalare, du - te la: http://php.net/manual/en/pdo.installation.php


Deschideți o conexiune la MySQL

Înainte de a putea accesa datele din baza de date MySQL, trebuie să fie capabil să se conecteze la server:

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

Notă cu privire la exemplul de mai sus orientat-obiect: $ connect_error a fost spart de până la PHP 5.2.9 și 5.3.0. Dacă aveți nevoie pentru a asigura compatibilitatea cu versiunile anterioare PHP 5.2.9 și 5.3.0, utilizați următorul cod în loc:

// Verificați conexiunea
dacă ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() de die("Database connection failed: " . mysqli_connect_error() a die("Database connection failed: " . mysqli_connect_error() );
}

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

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

Observați că , în exemplul de mai sus , DOP am specificat , de asemenea , o bază de date (myDB) . DOP necesită o bază de date validă pentru conectarea la. Dacă nu este specificat nici o bază de date, o excepție este aruncată.

Sfat: Un mare avantaj al DOP este că acesta are o clasă de excepție să se ocupe de orice probleme care potapară în interogările noastre de baze de date. În cazul în care o excepție este aruncată în try {} bloc, script - ul se oprește de executare și curge direct în prima catch() {} bloc.


Închideți Connection

Conexiunea se va închide automat atunci când script-ul se termină. Pentru a închide conexiunea înainte, utilizați următoarele:

Exemplu (MySQLi Object-Oriented)

$conn->close();

Exemplu (MySQLi Procedural)

mysqli_close($conn);

Exemplu (PDO)

$conn = null;