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

PHP: MySQL Funkce

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

Shrลˆte tento pล™รญspฤ›vek takto: