PHP MySQLi Funktsioonid: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP-l on manipuleerimiseks rikkalik sisseehitatud funktsioonide kogu MySQL andmebaasid.
PHP mysqli_connect funktsioon
PHP mysql connect funktsiooni kasutatakse ühenduse loomiseks a MySQL andmebaasiserver.
Sellel on järgmine süntaks.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
SIIN,
- "$db_handle" on andmebaasi ühenduse ressursi muutuja.
- "mysqli_connect(…)" on php andmebaasiühenduse funktsioon
- "$serveri_nimi" on hostiserveri nimi või IP-aadress MySQL server.
- "$user_name" on kehtiv kasutajanimi MySQL server.
- "$password" on kehtiv parool, mis on seotud kasutajanimega MySQL server.
PHP mysqli_select_db funktsioon
Andmebaasi valimiseks kasutatakse funktsiooni mysqli_select_db.
Sellel on järgmine süntaks.
<?php mysqli_select_db($db_handle,$database_name); ?>
SIIN,
- "mysqli_select_db(…)" on andmebaasi valimise funktsioon, mis tagastab kas tõese või vale
- "$andmebaasi_nimi" on andmebaasi nimi
- "$link_identifier" on valikuline, seda kasutatakse serveriühenduse lingi edastamiseks
PHP mysqli_query funktsioon
Käivitamiseks kasutatakse funktsiooni mysqli_query SQL päringud.
Funktsiooni saab kasutada järgmiste päringutüüpide täitmiseks;
- Sisesta
- valima
- Värskendused
- kustutama
Sellel on järgmine süntaks.
<?php mysqli_query($db_handle,$query) ; ?>
SIIN,
- "mysqli_query(…)" on funktsioon, mis täidab SQL-päringuid.
- "$query" on käivitatav SQL-päring
- "$link_identifier" on valikuline, seda saab kasutada serveriühenduse lingi edastamiseks
PHP mysqli_num_rows funktsioon
Funktsiooni mysqli_num_rows kasutatakse valikupäringust tagastatud ridade arvu saamiseks.
Sellel on järgmine süntaks.
<?php mysqli_num_rows($result); ?>
SIIN,
- "mysqli_num_rows(…)" on ridade loendusfunktsioon
- "$ tulemus" on mysqli_query tulemuste komplekt
PHP mysqli_fetch_array funktsioon
Funktsiooni mysqli_fetch_array kasutatakse rea massiivide toomine päringu tulemuse komplektist.
Sellel on järgmine süntaks.
<?php mysqli_fetch_array($result); ?>
SIIN,
- "mysqli_fetch_array(…)" on rea massiivi toomise funktsioon
- "$ tulemus" on funktsiooni mysqli_query poolt tagastatud tulemus.
PHP mysqli_close funktsioon
Funktsiooni mysqli_close kasutatakse avatud andmebaasiühenduse sulgemiseks.
Sellel on järgmine süntaks.
<?php mysqli_close($db_handle); ?>
SIIN,
- "mysqli_close(…)" on PHP funktsioon
- "$link_identifier" on valikuline, seda kasutatakse serveriühenduse ressursi edastamiseks
Vaatame praktilisi näiteid, mis neid funktsioone ära kasutavad.
Loomine MySQL andmebaas See õpetus eeldab teadmisi MySQL ja SQL, kui need terminid on teile võõrad, vaadake meie MySQL ja SQL õpetused.
Loome lihtsa andmebaasi nimega my_personal_contacts ainult ühe tabeliga.
Allpool on toodud sammud andmebaasi ja tabeli loomiseks.
- Ühenda MySQL kasutades oma lemmikjuurdepääsutööriista, näiteks MySQL töölaud, phpMyAdmin jne.
- Looge andmebaas nimega minu_isiku_kontaktid
- Käivitage allpool näidatud skript, et luua tabel ja sisestada mõned näivandmed
<?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'); ?>
Meil on nüüd loodud andmebaas, mida hakkame PHP abil manipuleerima.
Kirjete lugemine andmebaasist Nüüd loome programmi, mis prindib kirjed andmebaasist.
<?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 ?>
Ülaltoodud koodi täitmine tagastab alloleval diagrammil näidatud tulemused
Uute rekordite sisestamine
Vaatame nüüd näidet, mis lisab meie tabelisse uue rekordi. allolev kood näitab rakendamist.
<?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 ?>
Ülaltoodud koodiväljundite täitmine "Poseidon on edukalt lisatud teie kontaktide loendisse" minge tagasi valikupäringu näite juurde ja otsige oma kontaktid uuesti.
Vaadake, kas Poseidon on teie loendisse lisatud.
Kirjete värskendamine Vaatame nüüd näidet, mis värskendab kirjet andmebaasis.
Oletame, et Poseidon on muutnud oma kontaktnumbrit ja meiliaadressi.
<?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 ?>
Kirjete kustutamine
Vaatame nüüd näidet, mis eemaldab kirjed andmebaasist. Oletame, et Veenusel on meie suhtes lähenemiskeeld ja me peame eemaldama tema kontaktteabe andmebaas.
<?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 KPN
KPN on klass, mis võimaldab meil manipuleerida erinevate andmebaasimootoritega nagu MySQL, PostGres, MS SQL Server jne.
Allolev kood näitab PDO-objekti kasutades andmebaasi juurdepääsu meetodit.
Märge: allolev kood eeldab SQL-keele, massiivide, erandite käsitlemise ja foreach-tsükli tundmist.
<?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(); } ?>
SIIN,
- „try{...catch…}” on erandite käsitlemise plokk
- “$pdo = new PDO(“mysql…” loob PDO objekti eksemplari ja edastab andmebaasi draiverid, serveri ja andmebaasi nimed, kasutaja ID ja parooli.
- “$pdo->setAtt…” määrab PDO vearežiimi ja erandirežiimi atribuudid
- “$pdo->exec('SET NA…” määrab kodeeringu vormingu
ODBC ODBC on avatud andmebaasi ühenduvuse akronüüm. Sellel on järgmine põhisüntaks.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
SIIN,
- "odbc_connect" on PHP sisseehitatud funktsioon
- "$dsn" on ODBC andmeallika nimi.
- "$user_name" on valikuline, seda kasutatakse ODBC kasutajanime jaoks
- "$password" on valikuline, seda kasutatakse ODBC paroolina
Kasutatud näide eeldab sind;
- Kasutavad Windows OS
- Olete loonud ODBC lingi põhjatuulega Microsoft Juurdepääs andmebaasi nimega Northwind
Allpool on ODBC andmetele juurdepääsu rakenduskood
<?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); ?>
kokkuvõte
- MySQL on avatud lähtekoodiga relatsiooniandmebaasi haldus, mis on saadaval enamikus veebimajutusserverites
- PHP-l on rikkalik sisseehitatud funktsioonide kogu, mis lihtsustab sellega töötamist MySQL
- KPN on PHP andmeobjekti akronüüm; seda kasutatakse erinevate andmebaasimootoritega ühenduse loomiseks sama objekti abil
- PHP kasutab andmebaasidega manipuleerimiseks ODBC kaudu funktsiooni odbc_connect