PHP MySQLi Funkce: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP má bohatou sbírku vestavěných funkcí pro manipulaci MySQL databází.
PHP funkce mysqli_connect
Funkce PHP mysql connect se používá pro připojení k a MySQL databázový server.
Má následující syntaxi.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
TADY,
- „$db_handle“ je proměnná zdroje připojení k databázi.
- „mysqli_connect(…)“ je funkce pro připojení k databázi php
- „$server_name“ je název nebo IP adresa hostitelského serveru MySQL serveru.
- „$user_name“ je platné uživatelské jméno v MySQL serveru.
- „$password“ je platné heslo spojené s uživatelským jménem v MySQL serveru.
PHP funkce mysqli_select_db
Funkce mysqli_select_db slouží k výběru databáze.
Má následující syntaxi.
<?php mysqli_select_db($db_handle,$database_name); ?>
TADY,
- „mysqli_select_db(…)“ je funkce pro výběr databáze, která vrací hodnotu true nebo false
- “$database_name” je název databáze
- „$link_identifier“ je nepovinné, používá se k předání odkazu na připojení k serveru
PHP funkce mysqli_query
K provedení se používá funkce mysqli_query SQL dotazy.
Funkci lze použít k provedení následujících typů dotazů;
- Vložit
- vybrat
- Aktualizace
- vymazat
Má následující syntaxi.
<?php mysqli_query($db_handle,$query) ; ?>
TADY,
- „mysqli_query(…)“ je funkce, která provádí dotazy SQL.
- „$query“ je dotaz SQL, který se má provést
- „$link_identifier“ je volitelný, lze jej použít k předání odkazu na připojení k serveru
PHP funkce mysqli_num_rows
Funkce mysqli_num_rows se používá k získání počtu řádků vrácených z výběrového dotazu.
Má následující syntaxi.
<?php mysqli_num_rows($result); ?>
TADY,
- „mysqli_num_rows(…)“ je funkce počtu řádků
- „$result“ je sada výsledků mysqli_query
PHP funkce mysqli_fetch_array
Funkce mysqli_fetch_array se používá k načtení polí řádků ze sady výsledků dotazu.
Má následující syntaxi.
<?php mysqli_fetch_array($result); ?>
TADY,
- „mysqli_fetch_array(…)“ je funkce pro načítání polí řádků
- „$result“ je výsledek vrácený funkcí mysqli_query.
PHP funkce mysqli_close
Funkce mysqli_close se používá k uzavření otevřeného připojení k databázi.
Má následující syntaxi.
<?php mysqli_close($db_handle); ?>
TADY,
- „mysqli_close(…)“ je funkce PHP
- „$link_identifier“ je nepovinné, používá se k předání zdroje připojení k serveru
Podívejme se na praktické příklady, které tyto funkce využívají.
Vytváření MySQL databáze Tento tutoriál předpokládá znalost MySQL a SQL, pokud vám tyto termíny nejsou známé, podívejte se na naše MySQL a SQL tutoriály.
Vytvoříme jednoduchou databázi s názvem my_personal_contacts pouze s jednou tabulkou.
Níže jsou uvedeny kroky k vytvoření databáze a tabulky.
- Připojte se MySQL pomocí vašeho oblíbeného přístupového nástroje, jako je např MySQL workbench, phpMyAdmin atd.
- Vytvořte databázi s názvem my_person_contacts
- Pro vytvoření tabulky a vložení fiktivních dat spusťte níže uvedený skript
<?php CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy'); ?>
Nyní máme nastavenou databázi, se kterou budeme manipulovat z PHP.
Čtení záznamů z databáze Nyní vytvoříme program, který záznamy z databáze vytiskne.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection fails output error message $sql_stmt = "SELECT * FROM my_contacts"; //SQL select query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Database access failed: " . mysqli_error()); //output error message if query execution failed $rows = mysqli_num_rows($result); // get number of rows returned if ($rows) { while ($row = mysqli_fetch_array($result)) { echo 'ID: ' . $row['id'] . '<br>'; echo 'Full Names: ' . $row['full_names'] . '<br>'; echo 'Gender: ' . $row['gender'] . '<br>'; echo 'Contact No: ' . $row['contact_no'] . '<br>'; echo 'Email: ' . $row['email'] . '<br>'; echo 'City: ' . $row['city'] . '<br>'; echo 'Country: ' . $row['country'] . '<br><br>'; } } mysqli_close($dbh); //close the database connection ?>
Provedení výše uvedeného kódu vrátí výsledky zobrazené v diagramu níže
Vkládání nových záznamů
Podívejme se nyní na příklad, který do naší tabulky přidá nový záznam. níže uvedený kód ukazuje implementaci.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Adding record failed: " . mysqli_error()); //output error message if query execution failed echo "Poseidon has been successfully added to your contacts list"; mysqli_close($dbh); //close the database connection ?>
Provedením výše uvedených výstupů kódu „Poseidon byl úspěšně přidán do vašeho seznamu kontaktů“ se vraťte k příkladu výběrového dotazu a znovu načtěte své kontakty.
Podívejte se, zda byl Poseidon přidán do vašeho seznamu.
Aktualizace záznamů Podívejme se nyní na příklad, který aktualizuje záznam v databázi.
Předpokládejme, že Poseidon změnil své kontaktní číslo a e-mailovou adresu.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc '; //SQL select query $sql_stmt .= " WHERE `id` = 5"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number 5 has been successfully updated"; mysqli_close($dbh); //close the database connection ?>
Mazání záznamů
Podívejme se nyní na příklad, který odstraní záznamy z databáze. Předpokládejme, že Venuše má proti nám soudní zákaz a my musíme odstranit její kontaktní údaje z našich databáze.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection failes output error message $id = 4; //Venus's ID in the database $sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; //SQL Delete query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number $id has been successfully deleted"; mysqli_close($dbh); //close the database connection ?>
PHP Data Access Object PDO
PDO je třída, která nám umožňuje manipulovat s různými databázovými stroji jako např MySQL, PostGres, MS SQL Server atd.
Níže uvedený kód ukazuje metodu přístupu k databázi pomocí objektu PDO.
Poznámka: níže uvedený kód předpokládá znalost jazyka SQL, polí, zpracování výjimek a smyčky foreach.
<?php try { $pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"'); $sql_stmt = "SELECT * FROM `my_contacts`"; $result = $pdo->query($sql_stmt); $result->setFetchMode(PDO::FETCH_ASSOC); $data = array(); foreach ($result as $row) { $data[] = $row; } print_r($data); } catch (PDOException $e) { echo $e->getMessage(); } ?>
TADY,
- „try{…catch…}“ je blok zpracování výjimek
- “$pdo = new PDO(“mysql…” vytvoří instanci objektu PDO a předá databázové ovladače, názvy serverů a databází, ID uživatele a heslo.
- „$pdo->setAtt…“ nastavuje atributy chybového režimu PDO a režimu výjimky
- “$pdo->exec('SET NA…” nastavuje formát kódování
ODBC ODBC je zkratka pro Open Database Connectivity. Má následující základní syntaxi.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
TADY,
- „odbc_connect“ je funkce zabudovaná v PHP
- „$dsn“ je název zdroje dat ODBC.
- „$user_name“ je nepovinné, používá se pro uživatelské jméno ODBC
- „$password“ je nepovinné, používá se pro heslo ODBC
Použitý příklad předpokládá vás;
- Používají Windows OS
- Vytvořili jste odkaz ODBC na severní vítr Microsoft Access databáze s názvem northwind
Níže je uveden implementační kód pro přístup k datům ODBC
<?php $dbh = odbc_connect('northwind', '', ''); if (!$dbh) { exit("Connection Failed: " . $dbh); } $sql_stmt = "SELECT * FROM customers"; $result = odbc_exec($dbh, $sql_stmt); if (!$result) { exit("Error access records"); } while (odbc_fetch_row($result)) { $company_name = odbc_result($result, "CompanyName"); $contact_name = odbc_result($result, "ContactName"); echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>"; } odbc_close($dbh); ?>
Shrnutí
- MySQL je open source správa relačních databází dostupná na většině webhostingových serverů
- PHP má bohatou sbírku vestavěných funkcí, které zjednodušují práci MySQL
- PDO je zkratka pro PHP Data Object; používá se pro připojení k různým databázovým strojům pomocí stejného objektu
- PHP používá funkci odbc_connect pro manipulaci s databázemi přes ODBC