Úvod
Pro přístup a přidávání obsahu do MySQL databáze, musíte nejprve vytvořit spojení mezi databází a PHP skript.
V tomto tutoriálu se dozvíte, jak používat rozšíření MySQLi a datové objekty PHP pro připojení k MySQL . Tradiční starší funkce mysql_ jsou zastaralé a v této příručce se jimi nebudeme zabývat.
Předpoklady
- Speciální oprávnění CREATE
- Databáze MySQL
- Rozšíření MySQLi nebo PDO
2 způsoby připojení k databázi MySQL pomocí PHP
Existují dva oblíbené způsoby připojení k databázi MySQL pomocí PHP:
- S rozšířením MySQLi od PHP
- Pomocí PHP Data Objects (PDO)
Příručka také obsahuje vysvětlení přihlašovacích údajů používaných ve skriptech PHP a potenciální chyby, na které můžete při používání MySQLi a PDO narazit.
Možnost 1:Připojení k MySQL s rozšířením MySQL Improved
MySQLi je rozšíření, které podporuje pouze databáze MySQL. Umožňuje přístup k novým funkcím nalezeným v systémech MySQL (verze 4.1. a vyšší) a poskytuje jak objektově orientované, tak procedurální rozhraní. Podporuje příkazy připravené na straně serveru, ale nikoli příkazy připravené na straně klienta.
Rozšíření MySQLi je součástí PHP verze 5 a novější.
PHP skript pro připojení k databázi MySQL pomocí procedurálního přístupu MySQLi je následující:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo “Connected successfully”;
mysqli_close($conn);
?>
Vysvětlení přihlašovacích údajů
První částí skriptu jsou čtyři proměnné (název serveru, databáze, uživatelské jméno a heslo) a jejich příslušné hodnoty. Tyto hodnoty by měly odpovídat podrobnostem vašeho připojení.
Následuje hlavní funkce PHP mysqli_connect() . Naváže spojení se zadanou databází.
Následuje „příkaz if .“ Je to část kódu, která ukazuje, zda bylo navázáno spojení. Když se připojení nezdaří, zobrazí se zpráva Connection failed . kostka funkce vytiskne zprávu a poté ukončí mimo skript.
Pokud je připojení úspěšné, zobrazí se „Připojeno úspěšně .“
Po skončení skriptu se také uzavře spojení s databází. Pokud chcete kód ukončit ručně, použijte mysqli_close funkce.
Možnost 2:Připojení k MySQL pomocí PDO
PHP Data Objects (PDO) je rozšíření, které slouží jako rozhraní pro připojení k databázím. Na rozdíl od MySQLi může provádět libovolné databázové funkce a není omezen na MySQL. Umožňuje flexibilitu mezi databázemi a je obecnější než MySQL. PDO podporuje příkazy připravené na straně serveru i klienta.
PHP kód pro připojení k databázi MySQL prostřednictvím rozšíření PDO je:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
$charset = "utf8mb4";
try {
$dsn = "mysql:host=$servername;dbname=$database;charset=$charset";
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo “Connection Okay”;
return $pdo
}
catch (PDOException $e)
{
echo “Connection failed: ”. $e->getMessage();
}
?>
Syntaxe pověření
Nejprve máme pět proměnných (název serveru, databáze, uživatelské jméno, heslo a znakovou sadu) a jejich hodnoty. Tyto hodnoty by měly odpovídat podrobnostem vašeho připojení.
Název serveru bude localhost . Pokud jste připojeni k online serveru, zadejte název serveru tohoto serveru.
Proměnná charset říká databázi, ve kterém kódování bude přijímat a odesílat data. Doporučený standard je utf8mb4 .
Zkuste a chytněte bloky
Velkou výhodou PDO je, že má výjimku třídy, aby se postaral o případné problémy v databázových dotazech. Tyto problémy řeší začleněním zkus a chyť bloky.
Pokud při pokusu o připojení nastane problém, přestane běhat a pokusí se chytit a problém vyřešit. Chytit bloky lze nastavit tak, aby zobrazovaly chybové zprávy nebo spusťte alternativní kód .
První parametr v try and catch blok je DSN, což je zkratka pro data(base) source name . Je zásadní, protože definuje typ a název databáze spolu s dalšími doplňujícími informacemi.
V tomto příkladu používáme databázi MySQL. PDO však podporuje různé typy databází. Pokud máte jinou databázi, nahraďte tuto část syntaxe (mysql ) s databází, kterou používáte.
Další je CHOP variabilní. Tato proměnná vytvoří připojení k databázi. Má tři parametry:
- Název zdroje dat (dsn)
- Uživatelské jméno pro vaši databázi
- Heslo k vaší databázi
Následuje metoda setAttribute přidání dvou parametrů do PDO:
- PDO::ATTR_ERRMODE
- PDO::ERRMODE_EXCEPTION
Tato metoda dává PDO pokyn ke spuštění výjimky v případě, že dotaz selže.
Přidejte ozvěnu „Připojení je v pořádku .“ pro potvrzení navázání připojení.
Návrat proměnnou PDO pro připojení k databázi.
Po vrácení proměnné PDO definujte PDOException v úlovku blokovat tím, že mu přikážete zobrazit zprávu, když se připojení nezdaří.
Potenciální chyby s MySQLi a PDO
Nesprávné heslo
Heslo v PHP kódu musí odpovídat heslu v databázi. Pokud se tyto dva neshodují, nelze navázat spojení s databází. Zobrazí se chybová zpráva, že připojení selhalo .
Možná řešení :
- Zkontrolujte podrobnosti databáze a ujistěte se, že je heslo správné.
- Ujistěte se, že je k databázi přiřazen uživatel.
Nelze se připojit k serveru MySQL
PHP se nemusí být schopno připojit k serveru MySQL, pokud není název serveru rozpoznán. Ujistěte se, že název serveru je nastaven na localhost .
V případě dalších chyb se nezapomeňte podívat do error_log soubor, který vám pomůže při řešení jakýchkoli problémů. Soubor je umístěn ve stejné složce, kde je spuštěn skript.