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

