GNU/Linux >> Znalost Linux >  >> Linux

3 metody připojení k MySQL z PHP pomocí příkladu kódu

Chcete-li ze své databáze MySQL vytěžit maximum, je důležité pochopit, jak se připojit z vašeho vlastního programu PHP k databázi MySQL.

Tento tutoriál vysvětluje následující tři metody spolu s vhodným příkladem programu PHP, který vysvětlí, jak se připojit z vaší PHP k databázi MySQL.

  • Připojte se pomocí rozšíření mysqli (doporučeno)
  • Připojte se pomocí PDO (doporučeno)
  • Připojte se pomocí tradičních starších funkcí mysql_ (zastaralé)

Za tímto účelem byste měli nainstalovat balíček php-mysql.

V distribuci založené na RedHat včetně CentOS použijte yum k instalaci php-mysql, jak je uvedeno níže.

yum install php-mysql

V závislosti na vašem systému výše uvedené nainstaluje nebo aktualizuje následující závislosti:
php
php-cli
php-common
php-pdo
php-pgsql

Jakmile je nainstalován, stránka phpinfo zobrazí modul mysql, jak je znázorněno níže:

U všech níže uvedených příkladů se budeme připojovat k databázi MySQL, která již existuje. Pokud jste v MySQL noví, zde je dobré začít:MySQL Beginners Guide

Poznámka:Vše, co je zde vysvětleno, bude fungovat také s MariaDB, protože je stejná jako MySQL.

1. Připojte se z PHP pomocí rozšíření mysqli

mysqli je zkratka pro MySQL Improved.

Vezměte prosím na vědomí, že ve většině distribucí (například:CentOS) je php-mysqli již součástí balíčku php-mysql. Nemusíte tedy hledat a hledat balíček php-mysqli. Vše, co musíte udělat, je nainstalovat balíček php-mysql, aby rozšíření mysqli fungovalo ve vašem systému.

Vytvořte následující soubor mysqli.php pod 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();
?>

Ve výše uvedeném:

  • mysqli – Tato funkce zahájí nové připojení pomocí rozšíření mysqli. Tato funkce bude mít tyto čtyři argumenty
    1. název hostitele, kde běží databáze MySQL
    2. Uživatelské jméno MySQL pro připojení
    3. Heslo pro uživatele mysql
    4. Připojení k databázi MySQL.
  • funkce dotazu – použijte k zadání dotazu MySQL. V tomto příkladu vybíráme sloupec jména z databáze zaměstnanců.
  • Nakonec zobrazujeme počet řádků vybraných pomocí proměnné num_rows ve výsledku. Zavíráme také proměnnou result i connection, jak je uvedeno výše.

Když z prohlížeče zavoláte výše uvedený soubor mysqli.php, uvidíte následující výstup, který naznačuje, že se PHP dokázalo připojit k databázi MySQL a načíst data.

Connected to the database.
Number of rows: 6

Poznámka:Pokud se pokoušíte připojit ke vzdálené databázi MySQL, možná to budete muset udělat, abyste se vyhnuli chybové zprávě, že hostitel není povolen:Jak povolit klientovi MySQL připojení ke vzdálenému serveru MySQL

2. Připojte se z PHP MySQL PDO Extension

PDO je zkratka pro PHP Data Objects.

Jednotka PDO_MYSQL implementuje rozhraní PDO poskytované PHP pro připojení z vašeho programu PHP k databázi MySQL.

Na většině linuxových distribucí (například:CentOS a RedHat) je balíček php-pdo již součástí balíčku php-mysql. Nemusíte tedy hledat a hledat balíček php-pdo. Vše, co musíte udělat, je nainstalovat balíček php-mysql, aby rozšíření PDO_MYSQL PHP fungovalo ve vašem systému.

Vytvořte následující soubor mysql-pdo.php pod vaším 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();
  }
?>

Ve výše uvedeném:

  • nové PDO – Tím se vytvoří nový objekt PDO, který bude mít následující tři argumenty:
    1. připojovací řetězec mysql:Bude ve formátu „mysql:host=$název_hostitele;název_db=$název_databáze“. Ve výše uvedeném příkladu db běží na localhost a my se připojujeme k databázi thegeekstuff.
    2. Uživatelské jméno MySQL pro připojení
    3. Heslo pro uživatele mysql
  • Proměnná $sql – Vytvořte dotaz SQL, který chcete provést. V tomto příkladu vybíráme sloupec jména z tabulky zaměstnanců.
  • query($sql) – Zde provádíme dotaz SQL, který jsme právě vytvořili.
  • foreach – Zde procházíme výstup z výše uvedeného příkazu query a ukládáme jej do proměnné $row a poté jej zobrazujeme pomocí příkazu print.
  • Chcete-li v MySQL PDO ukončit připojení, jednoduše nastavte proměnnou $conn na hodnotu null.

Když z prohlížeče zavoláte výše uvedený soubor mysqli.php, uvidíte následující výstup, který naznačuje, že se PHP dokázalo připojit k databázi MySQL a načíst data.

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

3. Připojte se z PHP pomocí Legacy mysql_ Functions (zastaralé)

Tuto metodu použijte pouze v případě, že používáte starší verzi PHP a nemůžete ji z nějakého důvodu upgradovat na novou verzi.

Místo této metody se doporučuje použít metodu č. 2 a metodu č. 3 uvedenou výše. Tuto metodu jsem uvedl pouze pro informaci, nikoli jako doporučení k použití.

Toto konkrétní rozšíření bylo od verze PHP 5.5 zastaralé. Ale od verze PHP 7.0 to ani nebude fungovat, protože to bylo odstraněno.

Počínaje verzí PHP 5.5 se při použití těchto funkcí vygeneruje chyba E_DEPRECATED.

Vytvořte následující soubor mysql-legacy.php pod 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);
?>

Ve výše uvedeném:

  • Funkce mysql_connect má tři argumenty:1) název hostitele, kde běží databáze MySQL 2) uživatelské jméno MySQL pro připojení 3) heslo pro uživatele mysql. Zde se jedná o připojení k databázi MySQL, která běží na lokálním serveru pomocí uživatelského jména root a jeho hesla.
  • funkce mysql_select_db – Jak název napovídá, vybere se databáze, ke které se chcete připojit. To je ekvivalentní příkazu „use“. V tomto příkladu se připojujeme k databázi thegeekstuff.
  • funkce mysql_query – použijte k zadání dotazu MySQL. V tomto příkladu vybíráme sloupec jména z databáze zaměstnanců.
  • mysql_fetch_row – Tuto funkci použijte k načtení řádků z dotazu SQL, který jsme právě vytvořili.
  • Nakonec ukončete připojení pomocí příkazu mysql_close, jak je znázorněno výše.

Když ze svého prohlížeče zavoláte výše uvedený soubor mysql-legacy.php, uvidíte následující výstup, který naznačuje, že se PHP dokázalo připojit k databázi MySQL a načíst data.

Connected to the database.
Employee 1: Thomas

Linux
  1. Metody připojení MySQL

  2. Jak provádět čichání paketů pomocí Libpcap s ukázkovým kódem C

  3. Jak opravit problém s protokolem Curl TLS SSL z kódu CLI a PHP

  1. Příklad použití getnstimeofday v jádře Linuxu

  2. MySql databáze z usb klíče

  3. Připojit se k MySQL pomocí příkazového řádku bez použití hesla root?

  1. Jak se vzdáleně připojit k databázi MySQL z počítače

  2. Proč používat Symfony? 6 Argumentů pro používání Symfony PHP Framework z pohledu vývojáře

  3. Nelze se připojit k MySQL pomocí 'localhost', ale pomocí '127.0.0.1' je to v pořádku?