GNU/Linux >> LINUX-Kenntnisse >  >> Linux

3 Methoden zum Herstellen einer Verbindung zu MySQL von PHP mithilfe von Beispielcode

Um das Beste aus Ihrer MySQL-Datenbank herauszuholen, ist es wichtig zu verstehen, wie Sie eine Verbindung von Ihrem benutzerdefinierten PHP-Programm zur MySQL-Datenbank herstellen.

Dieses Tutorial erklärt die folgenden drei Methoden zusammen mit einem geeigneten Beispiel-PHP-Programm, das erklärt, wie Sie eine Verbindung von Ihrer PHP- zu einer MySQL-Datenbank herstellen.

  • Verbindung über mysqli-Erweiterung herstellen (empfohlen)
  • Verbindung über PDO herstellen (empfohlen)
  • Verbinden Sie sich mit traditionellen veralteten mysql_-Funktionen (veraltet)

Dazu sollten Sie das php-mysql-Paket installieren.

In RedHat-basierten Distributionen, einschließlich CentOS, verwenden Sie yum, um php-mysql wie unten gezeigt zu installieren.

yum install php-mysql

Abhängig von Ihrem System werden die folgenden Abhängigkeiten entweder installiert oder aktualisiert:
php
php-cli
php-common
php-pdo
php-pgsql

Sobald es installiert ist, zeigt die phpinfo-Seite das mysql-Modul wie unten gezeigt an:

Für alle folgenden Beispiele stellen wir eine Verbindung zu einer bereits vorhandenen MySQL-Datenbank her. Wenn Sie neu bei MySQL sind, ist dies ein guter Ausgangspunkt:MySQL Beginners Guide

Hinweis:Alles, was hier erklärt wird, funktioniert auch mit MariaDB, da es mit MySQL identisch ist.

1. Verbinden Sie sich von PHP mit der mysqli-Erweiterung

mysqli steht für MySQL Improved.

Bitte beachten Sie, dass php-mysqli bei den meisten Distributionen (z. B. CentOS) bereits Teil des php-mysql-Pakets ist. Sie müssen also nicht nach dem Paket php-mysqli suchen und suchen. Alles, was Sie tun müssen, ist das php-mysql-Paket zu installieren, damit die mysqli-Erweiterung auf Ihrem System funktioniert.

Erstellen Sie die folgende mysqli.php-Datei unter Apache DocumentRoot:

<?php
  $conn = new mysqli("localhost", "root", "mySecretDBpass", "thegeekstuff");
  
  if ($conn->connect_error) {
    die("ERROR: Unable to connect: " . $conn->connect_error);
  } 

  echo 'Connected to the database.<br>';

  $result = $conn->query("SELECT name FROM employee");

  echo "Number of rows: $result->num_rows";

  $result->close();

  $conn->close();
?>

Oben:

  • mysqli – Diese Funktion initiiert eine neue Verbindung mit der mysqli-Erweiterung. Diese Funktion übernimmt diese vier Argumente
    1. Hostname, auf dem die MySQL-Datenbank läuft
    2. MySQL-Benutzername zum Verbinden
    3. Passwort für den mysql-Benutzer
    4. Zu verbindende MySQL-Datenbank.
  • Abfragefunktion – Verwenden Sie diese, um Ihre MySQL-Abfrage anzugeben. In diesem Beispiel wählen wir die Namensspalte aus der Mitarbeiterdatenbank aus.
  • Schließlich zeigen wir die Anzahl der ausgewählten Zeilen mit der Variablen num_rows im Ergebnis an. Außerdem schließen wir sowohl die Ergebnis- als auch die Verbindungsvariable wie oben gezeigt.

Wenn Sie die obige mysqli.php von Ihrem Browser aus aufrufen, sehen Sie die folgende Ausgabe, die darauf hinweist, dass PHP sich mit der MySQL-Datenbank verbinden und Daten abrufen konnte.

Connected to the database.
Number of rows: 6

Hinweis:Wenn Sie versuchen, eine Verbindung zu einer Remote-MySQL-Datenbank herzustellen, müssen Sie dies möglicherweise tun, um die Fehlermeldung „Host nicht zulässig“ zu vermeiden:How to Allow MySQL Client to Connect to Remote MySQL server

2. Verbinden Sie sich von der PHP-MySQL-PDO-Erweiterung

PDO steht für PHP Data Objects.

Das PDO_MYSQL-Laufwerk implementiert die von PHP bereitgestellte PDO-Schnittstelle, um eine Verbindung von Ihrem PHP-Programm zur MySQL-Datenbank herzustellen.

Bei den meisten Linux-Distributionen (z. B. CentOS und RedHat) ist das php-pdo-Paket bereits Teil des php-mysql-Pakets. Sie müssen also nicht nach dem php-pdo-Paket suchen und suchen. Sie müssen lediglich das php-mysql-Paket installieren, damit die PDO_MYSQL-PHP-Erweiterung auf Ihrem System funktioniert.

Erstellen Sie die folgende mysql-pdo.php-Datei unter Ihrem Apache DocumentRoot:

<?php
  try {
    $conn = new PDO("mysql:host=localhost;dbname=thegeekstuff", "root", "mySecretDBpass");

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connected to the database.<br>';

    $sql = 'SELECT name FROM employee';
    
    print "Employee Name:<br>";
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "<br>";
    }
    $conn = null;

  }
  catch(PDOException $err) {
    echo "ERROR: Unable to connect: " . $err->getMessage();
  }
?>

Oben:

  • neues PDO – Dadurch wird ein neues PDO-Objekt erstellt, das die folgenden drei Argumente akzeptiert:
    1. Mysql-Verbindungszeichenfolge:Diese hat das Format „mysql:host=$hostname;dbname=$dbname“. Im obigen Beispiel läuft die Datenbank auf localhost und wir stellen eine Verbindung zur Datenbank thegeekstuff her.
    2. MySQL-Benutzername zum Verbinden
    3. Passwort für den mysql-Benutzer
  • $sql-Variable – Erstellen Sie die SQL-Abfrage, die Sie ausführen möchten. In diesem Beispiel wählen wir die Namensspalte aus der Mitarbeitertabelle aus.
  • query($sql) – Hier führen wir die gerade erstellte SQL-Abfrage aus.
  • foreach – Hier durchlaufen wir die Ausgabe des obigen Abfragebefehls und speichern sie in der $row-Variablen, und dann zeigen wir sie mit dem Druckbefehl an.
  • Um die Verbindung zu schließen, setzen Sie in MySQL PDO einfach die $conn-Variable auf einen Nullwert.

Wenn Sie die obige mysqli.php von Ihrem Browser aus aufrufen, sehen Sie die folgende Ausgabe, die darauf hinweist, dass PHP sich mit der MySQL-Datenbank verbinden und Daten abrufen konnte.

Connected to the database.
Employee Name:
Thomas
Jason
Mayla
Nisha
Randy
Ritu

3. Verbindung von PHP mit veralteten mysql_-Funktionen (veraltet)

Verwenden Sie diese Methode nur, wenn Sie eine ältere PHP-Version verwenden und diese aus irgendeinem Grund nicht auf die neue Version aktualisieren können.

Es wird empfohlen, anstelle dieser Methode die oben gezeigten Methoden Nr. 2 und Methode Nr. 3 zu verwenden. Ich habe diese Methode nur als Referenz und nicht als Empfehlung zur Verwendung aufgenommen.

Diese spezielle Erweiterung wurde ab PHP 5.5-Version abgelehnt. Aber ab PHP 7.0 Version funktioniert das nicht einmal, da es entfernt wurde.

Ab Version PHP 5.5 wird bei Verwendung dieser Funktionen der Fehler E_DEPRECATED generiert.

Erstellen Sie die folgende mysql-legacy.php-Datei unter Apache DocumentRoot:

<?php
$conn = mysql_connect('localhost', 'root', 'mySecretDBpass');
mysql_select_db("thegeekstuff");
if (!$conn) {
die('ERROR: Unable to connect: ' . mysql_error());
}

echo 'Connected to the database.<br>';

$result = mysql_query('SELECT name FROM employee');

$row = mysql_fetch_row($result);
echo "Employee 1: ", $row[0], "<br>\n";

mysql_close($conn);
?>

Oben:

  • Die mysql_connect-Funktion benötigt drei Argumente:1) Hostname, auf dem die MySQL-Datenbank läuft 2) MySQL-Benutzername zum Verbinden 3) Passwort für den mysql-Benutzer. Hier verbindet es sich mit dem Benutzernamen root und seinem Passwort mit der MySQL-Datenbank, die auf dem lokalen Server läuft.
  • mysql_select_db-Funktion – Wie der Name schon sagt, wählt dies die Datenbank aus, mit der Sie sich verbinden möchten. Dies entspricht dem „use“-Befehl. In diesem Beispiel verbinden wir uns mit der Datenbank thegeekstuff.
  • mysql_query-Funktion – Verwenden Sie diese, um Ihre MySQL-Abfrage anzugeben. In diesem Beispiel wählen wir die Namensspalte aus der Mitarbeiterdatenbank aus.
  • mysql_fetch_row – Verwenden Sie diese Funktion, um die Zeilen aus der gerade erstellten SQL-Abfrage abzurufen.
  • Schließen Sie schließlich die Verbindung mit dem Befehl mysql_close, wie oben gezeigt.

Wenn Sie die obige mysql-legacy.php von Ihrem Browser aus aufrufen, sehen Sie die folgende Ausgabe, die darauf hinweist, dass PHP sich mit der MySQL-Datenbank verbinden und Daten abrufen konnte.

Connected to the database.
Employee 1: Thomas

Linux
  1. Warum Symfony verwenden? 6 Argumente für die Verwendung des Symfony PHP Framework aus Entwicklersicht

  2. Verbinden Sie sich remote mit einer MySQL-Datenbank

  3. So führen Sie Packet Sniffing mit Libpcap mit C-Beispielcode durch

  4. So beheben Sie das Curl-TLS-SSL-Protokollproblem von CLI- und PHP-Code

  5. MySQL-Datenbank vom USB-Stick

Wie man mit PHP eine Verbindung zu MySQL herstellt

So verbinden Sie sich mit MySQL über die Windows-Befehlszeile

So fügen Sie Daten in eine MySQL-Datenbank mit PHP in XAMPP ein

Erstellen Sie eine MySQL-Datenbank und -Tabelle mit PHP in XAMPP

So stellen Sie eine PHP-Anwendung mit Nginx und MySQL mit Docker und Docker Compose bereit

Wie man mit PHP eine Verbindung zu MySQL herstellt