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

