PHP MySQLi Funkcije: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP ima bogatu kolekciju ugrađenih funkcija za manipuliranje MySQL baza podataka.
PHP mysqli_connect funkcija
Funkcija PHP mysql connect koristi se za povezivanje s a MySQL poslužitelj baze podataka.
Ima sljedeću sintaksu.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
OVDJE,
- “$db_handle” je varijabla resursa veze s bazom podataka.
- “mysqli_connect(…)” je funkcija za povezivanje php baze podataka
- “$server_name” je naziv ili IP adresa hosting poslužitelja MySQL poslužitelj.
- “$user_name” je važeće korisničko ime u MySQL poslužitelj.
- “$password” je važeća lozinka povezana s korisničkim imenom u MySQL poslužitelj.
PHP mysqli_select_db funkcija
Funkcija mysqli_select_db koristi se za odabir baze podataka.
Ima sljedeću sintaksu.
<?php mysqli_select_db($db_handle,$database_name); ?>
OVDJE,
- “mysqli_select_db(…)” je funkcija odabira baze podataka koja vraća true ili false
- “$database_name” je naziv baze podataka
- “$link_identifier” nije obavezan, koristi se za prosljeđivanje veze veze poslužitelja
PHP mysqli_query funkcija
Za izvođenje se koristi funkcija mysqli_query SQL upita.
Funkcija se može koristiti za izvršavanje sljedećih vrsta upita;
- umetak
- odabrati
- Nadopune
- izbrisati
Ima sljedeću sintaksu.
<?php mysqli_query($db_handle,$query) ; ?>
OVDJE,
- “mysqli_query(…)” je funkcija koja izvršava SQL upite.
- “$query” je SQL upit koji treba izvršiti
- “$link_identifier” nije obavezan, može se koristiti za prosljeđivanje veze veze poslužitelja
PHP mysqli_num_rows funkcija
Funkcija mysqli_num_rows koristi se za dobivanje broja redaka vraćenih iz upita odabira.
Ima sljedeću sintaksu.
<?php mysqli_num_rows($result); ?>
OVDJE,
- “mysqli_num_rows(…)” je funkcija brojanja redaka
- “$result” je skup rezultata mysqli_query
PHP mysqli_fetch_array funkcija
Funkcija mysqli_fetch_array koristi se za dohvaćanje nizova redaka iz skupa rezultata upita.
Ima sljedeću sintaksu.
<?php mysqli_fetch_array($result); ?>
OVDJE,
- “mysqli_fetch_array(…)” je funkcija za dohvaćanje nizova redaka
- “$result” je rezultat koji vraća funkcija mysqli_query.
PHP mysqli_close funkcija
Funkcija mysqli_close koristi se za zatvaranje otvorene veze s bazom podataka.
Ima sljedeću sintaksu.
<?php mysqli_close($db_handle); ?>
OVDJE,
- “mysqli_close(…)” je PHP funkcija
- “$link_identifier” nije obavezan, koristi se za prosljeđivanje resursa veze poslužitelja
Pogledajmo praktične primjere koji iskorištavaju prednosti ovih funkcija.
Stvaranje MySQL baza podataka Ovaj vodič pretpostavlja poznavanje MySQL i SQL, ako vam ovi pojmovi nisu poznati, pogledajte naše MySQL i SQL vodiči.
Napravit ćemo jednostavnu bazu podataka nazvanu my_personal_contacts sa samo jednom tablicom.
U nastavku su navedeni koraci za stvaranje baze podataka i tablice.
- Poveži se s MySQL pomoću vašeg omiljenog alata za pristup kao što je MySQL radni stol, phpMyAdmin itd.
- Stvorite bazu podataka pod nazivom my_person_contacts
- Izvršite skriptu prikazanu u nastavku za izradu tablice i umetanje nekih lažnih podataka
<?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'); ?>
Sada imamo postavljenu bazu podataka kojom ćemo manipulirati iz PHP-a.
Čitanje zapisa iz baze podataka Sada ćemo napraviti program koji ispisuje zapise iz baze podataka.
<?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 ?>
Izvršenje gornjeg koda vraća rezultate prikazane u dijagramu prikazanom u nastavku
Umetanje novih zapisa
Pogledajmo sada primjer koji dodaje novi zapis u našu tablicu. kod u nastavku prikazuje implementaciju.
<?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 ?>
Izvršavanje gornjeg koda ispisuje "Poseidon je uspješno dodan na vaš popis kontakata" vratite se na primjer upita za odabir i ponovno dohvatite svoje kontakte.
Provjerite je li Poseidon dodan na vaš popis.
Ažuriranje zapisa Pogledajmo sada primjer koji ažurira zapis u bazi podataka.
Pretpostavimo da je Poseidon promijenio svoj kontakt broj i adresu e-pošte.
<?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 ?>
Brisanje zapisa
Pogledajmo sada primjer koji uklanja zapise iz baze podataka. Pretpostavimo da Venus ima zabranu prilaska protiv nas i moramo ukloniti njezine podatke o kontaktima iz naših baza podataka.
<?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 klasa koja nam omogućuje manipuliranje različitim motorima baze podataka kao što su MySQL, PostGres, MS SQL Server itd.
Kod u nastavku prikazuje metodu pristupa bazi podataka pomoću PDO objekta.
Bilješka: kod u nastavku pretpostavlja poznavanje SQL jezika, nizova, rukovanja iznimkama i foreach petlje.
<?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(); } ?>
OVDJE,
- “try{…catch…}” je blok za rukovanje iznimkama
- “$pdo = novi PDO(“mysql…” stvara instancu PDO objekta i prosljeđuje upravljačke programe baze podataka, imena poslužitelja i baze podataka, korisnički ID i lozinku.
- “$pdo->setAtt…” postavlja atribute načina rada PDO pogreške i načina iznimke
- “$pdo->exec('SET NA…” postavlja format kodiranja
ODBC ODBC je akronim za Open Database Connectivity. Ima sljedeću osnovnu sintaksu.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
OVDJE,
- “odbc_connect” je PHP ugrađena funkcija
- “$dsn” je naziv ODBC izvora podataka.
- “$user_name” nije obavezan, koristi se za ODBC korisničko ime
- “$password” nije obavezan, koristi se za ODBC lozinku
Korišteni primjer pretpostavlja vas;
- koriste Windows OS
- Stvorili ste ODBC vezu na Northwind Microsoft Pristup bazi podataka pod nazivom Northwind
Ispod je implementacijski kod za ODBC pristup podacima
<?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); ?>
rezime
- MySQL je upravljanje relacijskom bazom podataka otvorenog koda dostupno na većini poslužitelja web hostinga
- PHP ima bogatu kolekciju ugrađenih funkcija koje pojednostavljuju rad MySQL
- PDO je akronim za PHP Data Object; koristi se za povezivanje s različitim pogonima baze podataka koristeći isti objekt
- PHP koristi funkciju odbc_connect za manipuliranje bazama podataka putem ODBC-a