PHP MySQLFunkcje: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP posiada bogatą kolekcję wbudowanych funkcji służących do manipulacji MySQL bazy danych.
Funkcja PHP mysqli_connect
Funkcja PHP mysql connect służy do łączenia się z MySQL Serwer bazy danych.
Ma następującą składnię.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
TUTAJ,
- „$db_handle” to zmienna zasobu połączenia z bazą danych.
- „mysqli_connect(…)” to funkcja służąca do łączenia się z bazą danych PHP
- „$server_name” to nazwa lub adres IP serwera hostingowego MySQL serwer.
- „$user_name” to prawidłowa nazwa użytkownika w MySQL serwer.
- „$hasło” to prawidłowe hasło powiązane z nazwą użytkownika w MySQL serwer.
Funkcja PHP mysqli_select_db
Funkcja mysqli_select_db służy do wybierania bazy danych.
Ma następującą składnię.
<?php mysqli_select_db($db_handle,$database_name); ?>
TUTAJ,
- „mysqli_select_db(…)” to funkcja wyboru bazy danych, która zwraca wartość true lub false
- „$database_name” to nazwa bazy danych
- „$link_identifier” jest opcjonalne, służy do przekazywania łącza do połączenia z serwerem
Funkcja PHP mysqli_query
Funkcja mysqli_query służy do wykonywania SQL zapytania.
Funkcja ta może być używana do wykonywania następujących typów zapytań:
- wstawka
- Wybierz
- Aktualizacja
- usunąć
Ma następującą składnię.
<?php mysqli_query($db_handle,$query) ; ?>
TUTAJ,
- „mysqli_query(…)” to funkcja wykonująca zapytania SQL.
- „$query” to zapytanie SQL, które ma zostać wykonane
- „$link_identifier” jest opcjonalne, można go użyć do przekazania łącza do połączenia z serwerem
Funkcja PHP mysqli_num_rows
Funkcja mysqli_num_rows służy do uzyskania liczby wierszy zwróconych przez zapytanie SELECT.
Ma następującą składnię.
<?php mysqli_num_rows($result); ?>
TUTAJ,
- „mysqli_num_rows(…)” to funkcja zliczająca wiersze
- „$result” to zestaw wyników mysqli_query
Funkcja PHP mysqli_fetch_array
Funkcja mysqli_fetch_array służy do pobierania tablic wierszy z zestawu wyników zapytania.
Ma następującą składnię.
<?php mysqli_fetch_array($result); ?>
TUTAJ,
- „mysqli_fetch_array(…)” to funkcja służąca do pobierania tablic wierszy
- “$result” to wynik zwrócony przez funkcję mysqli_query.
Funkcja PHP mysqli_close
Funkcja mysqli_close służy do zamykania otwartego połączenia z bazą danych.
Ma następującą składnię.
<?php mysqli_close($db_handle); ?>
TUTAJ,
- „mysqli_close(…)” to funkcja PHP
- „$link_identifier” jest opcjonalne, służy do przekazywania zasobu połączenia z serwerem
Przyjrzyjmy się praktycznym przykładom wykorzystującym te funkcje.
Tworzenie MySQL baza danych W tym samouczku zakłada się, że posiadasz wiedzę nt MySQL i SQL, jeśli te terminy nie są Ci znane, zapoznaj się z naszymi MySQL i tutoriale SQL.
Stworzymy prostą bazę danych o nazwie my_personal_contacts zawierającą tylko jedną tabelę.
Poniżej przedstawiono kroki tworzenia bazy danych i tabeli.
- Połącz się MySQL za pomocą ulubionego narzędzia dostępu, takiego jak MySQL workbench, phpMyAdmin itp.
- Utwórz bazę danych o nazwie moja_osoba_kontakty
- Wykonaj skrypt pokazany poniżej, aby utworzyć tabelę i wstawić fikcyjne dane
<?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'); ?>
Mamy teraz skonfigurowaną bazę danych, którą będziemy manipulować z poziomu PHP.
Odczyt rekordów z bazy danych Stworzymy teraz program, który wydrukuje rekordy z bazy danych.
<?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 ?>
Wykonanie powyższego kodu zwraca wyniki pokazane na poniższym diagramie
Wstawianie nowych rekordów
Przyjrzyjmy się teraz przykładowi, który dodaje nowy rekord do naszej tabeli. poniższy kod przedstawia implementację.
<?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 ?>
Wykonanie powyższego kodu spowoduje wyświetlenie komunikatu „Posejdon został pomyślnie dodany do Twojej listy kontaktów”. Wróć do przykładowego zapytania wybierającego i ponownie pobierz swoje kontakty.
Sprawdź, czy Posejdon został dodany do Twojej listy.
Aktualizowanie rekordów Przyjrzyjmy się teraz przykładowi, który aktualizuje rekord w bazie danych.
Załóżmy, że Posejdon zmienił swój numer kontaktowy i adres e-mail.
<?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 ?>
Usuwanie rekordów
Przyjrzyjmy się teraz przykładowi usuwania rekordów z bazy danych. Załóżmy, że Venus ma wobec nas zakaz zbliżania się i musimy usunąć jej dane kontaktowe z naszych baza danych.
<?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 ?>
Obiekt dostępu do danych PHP PDO
PDO to klasa, która pozwala nam manipulować różnymi silnikami baz danych, takimi jak MySQL, PostGres, MS SQL Server itp.
Poniższy kod przedstawia sposób dostępu do bazy danych z wykorzystaniem obiektu PDO.
Uwaga: poniższy kod zakłada znajomość języka SQL, tablic, obsługi wyjątków i pętli 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(); } ?>
TUTAJ,
- „try{…catch…}” to blok obsługi wyjątków
- „$pdo = new PDO(“mysql…” tworzy wystąpienie obiektu PDO i przekazuje sterowniki bazy danych, nazwę serwera i bazy danych, identyfikator użytkownika i hasło.
- „$pdo->setAtt…” ustawia atrybuty trybu błędu PDO i trybu wyjątku
- „$pdo->exec('SET NA…” ustawia format kodowania
ODBC ODBC to skrót od Open Database Connectivity. Ma następującą podstawową składnię.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
TUTAJ,
- „odbc_connect” to wbudowana funkcja PHP
- „$dsn” to nazwa źródła danych ODBC.
- „$user_name” jest opcjonalne i używane jako nazwa użytkownika ODBC
- „$hasło” jest opcjonalne, służy do hasła ODBC
Zastosowany przykład zakłada, że ty;
- Używają Windows OS
- Utworzyłeś łącze ODBC do Northwind Microsoft Dostęp do bazy danych o nazwie Northwind
Poniżej znajduje się kod implementacji dostępu do danych 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); ?>
Podsumowanie
- MySQL to narzędzie do zarządzania relacyjnymi bazami danych o otwartym kodzie źródłowym, dostępne na większości serwerów hostingowych
- PHP posiada bogatą kolekcję wbudowanych funkcji, które upraszczają pracę MySQL
- PDO to skrót od PHP Data Object; służy do łączenia się z różnymi silnikami baz danych przy użyciu tego samego obiektu
- PHP używa funkcji odbc_connect do manipulowania bazami danych poprzez ODBC