PHP MySQLi Funcții: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP are o colecție bogată de funcții încorporate pentru manipulare MySQL baze de date.
Funcția PHP mysqli_connect
Funcția PHP mysql connect este folosită pentru a vă conecta la un MySQL server de baze de date.
Are următoarea sintaxă.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
AICI,
- „$db_handle” este variabila resursă de conexiune la baza de date.
- „mysqli_connect(…)” este funcția pentru conexiunea la baza de date php
- „$server_name” este numele sau adresa IP a serverului de găzduire MySQL Server.
- „$user_name” este un nume de utilizator valid în MySQL Server.
- „$password” este o parolă validă asociată cu un nume de utilizator în MySQL Server.
Funcția PHP mysqli_select_db
Funcția mysqli_select_db este utilizată pentru a selecta o bază de date.
Are următoarea sintaxă.
<?php mysqli_select_db($db_handle,$database_name); ?>
AICI,
- „mysqli_select_db(…)” este funcția de selecție a bazei de date care returnează fie adevărat, fie fals
- „$database_name” este numele bazei de date
- „$link_identifier” este opțional, este folosit pentru a trece linkul de conectare la server
Funcția PHP mysqli_query
Funcția mysqli_query este folosită pentru a executa SQL întrebări.
Funcția poate fi utilizată pentru a executa următoarele tipuri de interogări;
- Insera
- Selectați
- Actualizează
- șterge
Are următoarea sintaxă.
<?php mysqli_query($db_handle,$query) ; ?>
AICI,
- „mysqli_query(…)” este funcția care execută interogările SQL.
- „$query” este interogarea SQL care trebuie executată
- „$link_identifier” este opțional, poate fi folosit pentru a trece linkul de conectare la server
Funcția PHP mysqli_num_rows
Funcția mysqli_num_rows este utilizată pentru a obține numărul de rânduri returnate dintr-o interogare de selectare.
Are următoarea sintaxă.
<?php mysqli_num_rows($result); ?>
AICI,
- „mysqli_num_rows(…)” este funcția de numărare a rândurilor
- „$rezultat” este setul de rezultate mysqli_query
Funcția PHP mysqli_fetch_array
Funcția mysqli_fetch_array este folosită pentru a prelua matrice de rânduri dintr-un set de rezultate de interogare.
Are următoarea sintaxă.
<?php mysqli_fetch_array($result); ?>
AICI,
- „mysqli_fetch_array(…)” este funcția pentru preluarea matricelor de rânduri
- „$rezultat” este rezultatul returnat de funcția mysqli_query.
Funcția PHP mysqli_close
Funcția mysqli_close este utilizată pentru a închide o conexiune la o bază de date deschisă.
Are următoarea sintaxă.
<?php mysqli_close($db_handle); ?>
AICI,
- „mysqli_close(…)” este funcția PHP
- „$link_identifier” este opțional, este folosit pentru a trece resursa de conectare la server
Să ne uităm la exemple practice care profită de aceste funcții.
Crearea MySQL baza de date Acest tutorial presupune cunoștințe despre MySQL și SQL, dacă acești termeni nu vă sunt familiari, consultați-vă MySQL și tutoriale SQL.
Vom crea o bază de date simplă numită my_personal_contacts cu un singur tabel.
Mai jos sunt pașii pentru crearea bazei de date și a tabelului.
- Conectează la MySQL folosind instrumentul de acces preferat, cum ar fi MySQL workbench, phpMyAdmin etc.
- Creați o bază de date numită my_person_contacts
- Executați scriptul afișat mai jos pentru a crea tabelul și pentru a introduce câteva date fictive
<?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'); ?>
Acum avem o bază de date configurată pe care o vom manipula din PHP.
Citirea înregistrărilor din baza de date Vom crea acum un program care imprimă înregistrările din baza de date.
<?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 ?>
Executarea codului de mai sus returnează rezultatele prezentate în diagrama prezentată mai jos
Inserarea de noi înregistrări
Să ne uităm acum la un exemplu care adaugă o înregistrare nouă în tabelul nostru. codul de mai jos arată implementarea.
<?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 ?>
Executarea codului de mai sus „Poseidon a fost adăugat cu succes la lista de contacte” reveniți la exemplul de interogare selectată și recuperați din nou contactele.
Vezi dacă Poseidon a fost adăugat pe lista ta.
Actualizarea înregistrărilor Să ne uităm acum la un exemplu care actualizează o înregistrare în baza de date.
Să presupunem că Poseidon și-a schimbat numărul de contact și adresa de 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 ?>
Ștergerea înregistrărilor
Să ne uităm acum la un exemplu care elimină înregistrările din baza de date. Să presupunem că Venus are un ordin de restricție împotriva noastră și trebuie să eliminăm informațiile ei de contact din noastre Baza de date.
<?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 este o clasă care ne permite să manipulăm diferite motoare de baze de date, cum ar fi MySQL, PostGres, MS SQL Server etc.
Codul de mai jos arată metoda de acces la baza de date folosind obiectul PDO.
Notă: codul de mai jos presupune cunoștințe de limbaj SQL, matrice, gestionarea excepțiilor și bucla 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(); } ?>
AICI,
- „try{…catch…}” este blocul de gestionare a excepțiilor
- „$pdo = new PDO(“mysql…” creează o instanță a obiectului PDO și transmite driverele bazei de date, numele serverului și bazei de date, id-ul utilizatorului și parola.
- „$pdo->setAtt…” setează modul de eroare PDO și atributele modului de excepție
- „$pdo->exec('SET NA…” setează formatul de codificare
ODBC ODBC este acronimul pentru Open Database Connectivity. Are următoarea sintaxă de bază.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
AICI,
- „odbc_connect” este funcția PHP încorporată
- „$dsn” este numele sursei de date ODBC.
- „$user_name” este opțional, este folosit pentru numele de utilizator ODBC
- „$parola” este opțională, este folosită pentru parola ODBC
Exemplul folosit te presupune;
- Folosesc Windows OS
- Ați creat o legătură ODBC către vântul de nord Microsoft Accesați baza de date numită northwind
Mai jos este codul de implementare pentru accesul la date 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); ?>
Rezumat
- MySQL este o bază de date relațională open source disponibilă pe majoritatea serverelor de găzduire web
- PHP are o colecție bogată de funcții încorporate care simplifică lucrul cu MySQL
- PDO este acronimul pentru PHP Data Object; este folosit pentru a se conecta la diferite motoare de baze de date folosind același obiect
- PHP folosește funcția odbc_connect pentru a manipula bazele de date prin ODBC