PHP MySQLi-funksjoner: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP har en rik samling av innebygde funksjoner for manipulering MySQL databaser.
PHP mysqli_connect funksjon
PHP mysql connect-funksjonen brukes til รฅ koble til en MySQL databaseserver.
Den har fรธlgende syntaks.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
HER,
- "$db_handle" er ressursvariabelen for databasetilkoblingen.
- "mysqli_connect(...)" er funksjonen for php-databasetilkobling
- "$server_name" er navnet eller IP-adressen til serververten MySQL server.
- "$user_name" er et gyldig brukernavn i MySQL server.
- "$password" er et gyldig passord knyttet til et brukernavn i MySQL server.
PHP mysqli_select_db funksjon
Mysqli_select_db-funksjonen brukes til รฅ velge en database.
Den har fรธlgende syntaks.
<?php mysqli_select_db($db_handle,$database_name); ?>
HER,
- "mysqli_select_db(...)" er databasevalgfunksjonen som returnerer enten sant eller usant
- "$database_name" er navnet pรฅ databasen
- "$link_identifier" er valgfritt, den brukes til รฅ sende inn servertilkoblingslenken
PHP mysqli_query funksjon
Mysqli_query-funksjonen brukes til รฅ utfรธre SQL spรธrringer.
Funksjonen kan brukes til รฅ utfรธre fรธlgende spรธrringstyper;
- innfelt
- Velg
- Oppdater
- slette
Den har fรธlgende syntaks.
<?php mysqli_query($db_handle,$query) ; ?>
HER,
- "mysqli_query(...)" er funksjonen som utfรธrer SQL-spรธrringene.
- "$query" er SQL-spรธrringen som skal utfรธres
- "$link_identifier" er valgfritt, den kan brukes til รฅ sende inn servertilkoblingslenken
PHP mysqli_num_rows funksjon
Mysqli_num_rows-funksjonen brukes til รฅ fรฅ antall rader som returneres fra et utvalgt sรธk.
Den har fรธlgende syntaks.
<?php mysqli_num_rows($result); ?>
HER,
- "mysqli_num_rows(...)" er radtellingsfunksjonen
- "$result" er mysqli_query-resultatsettet
PHP mysqli_fetch_array funksjon
Mysqli_fetch_array-funksjonen brukes hente radarrayer fra et spรธrringsresultatsett.
Den har fรธlgende syntaks.
<?php mysqli_fetch_array($result); ?>
HER,
- "mysqli_fetch_array(...)" er funksjonen for รฅ hente radarrayer
- "$result" er resultatet som returneres av mysqli_query-funksjonen.
PHP mysqli_close funksjon
Mysqli_close-funksjonen brukes til รฅ lukke en รฅpen databaseforbindelse.
Den har fรธlgende syntaks.
<?php mysqli_close($db_handle); ?>
HER,
- "mysqli_close(...)" er PHP-funksjonen
- "$link_identifier" er valgfritt, den brukes til รฅ sende inn servertilkoblingsressursen
La oss se pรฅ praktiske eksempler som drar nytte av disse funksjonene.
Opprette MySQL database Denne opplรฆringen forutsetter kunnskap om MySQL og SQL, hvis disse begrepene er ukjente for deg, se vรฅr MySQL og SQL-veiledninger.
Vi vil lage en enkel database kalt my_personal_contacts med kun รฉn tabell.
Nedenfor er trinnene for รฅ lage databasen og tabellen.
- Koble til MySQL ved รฅ bruke ditt favoritttilgangsverktรธy som f.eks MySQL arbeidsbenk, phpMyAdmin etc.
- Opprett en database kalt min_person_kontakter
- Kjรธr skriptet vist nedenfor for รฅ lage tabellen og sette inn noen dummy-data
<?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'); ?>
Vi har nรฅ satt opp en database som vi skal manipulere fra PHP.
Lese poster fra databasen Vi skal nรฅ lage et program som skriver ut postene fra databasen.
<?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
?>
Utfรธrelse av koden ovenfor returnerer resultatene vist i diagrammet vist nedenfor
Setter inn nye poster
La oss nรฅ se pรฅ et eksempel som legger til en ny post i tabellen vรฅr. koden nedenfor viser implementeringen.
<?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
?>
Utfรธre kodeutgangene ovenfor "Poseidon har blitt lagt til i kontaktlisten din" gรฅ tilbake til eksemplet med utvalgt spรธrring og hent kontaktene dine igjen.
Se om Poseidon er lagt til i listen din.
Oppdatere poster La oss nรฅ se pรฅ et eksempel som oppdaterer en post i databasen.
La oss anta at Poseidon har endret kontaktnummer og e-postadresse.
<?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
?>
Sletting av poster
La oss nรฅ se pรฅ et eksempel som fjerner poster fra databasen. La oss anta at Venus har et besรธksforbud mot oss, og vi mรฅ fjerne kontaktinformasjonen hennes fra vรฅr database.
<?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 PUD
PUD er en klasse som lar oss manipulere forskjellige databasemotorer som f.eks MySQL, PostGres, MS SQL Server etc.
Koden nedenfor viser databasetilgangsmetoden ved รฅ bruke PDO-objektet.
OBS: koden nedenfor forutsetter kunnskap om SQL-sprรฅk, arrays, unntakshรฅndtering og foreach loop.
<?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();
}
?>
HER,
- "try{...catch...}" er unntakshรฅndteringsblokken
- "$pdo = new PDO("mysql..." oppretter en forekomst av PDO-objektet og sender databasedrivere, server- og databasenavn, bruker-ID og passord.
- "$pdo->setAtt..." setter PDO-feilmodus- og unntaksmodusattributtene
- "$pdo->exec('SET NA..." setter kodingsformatet
ODBC ODBC er akronymet for Open Database Connectivity. Den har fรธlgende grunnleggende syntaks.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
HER,
- "odbc_connect" er den innebygde PHP-funksjonen
- "$dsn" er ODBC-datakildenavnet.
- "$user_name" er valgfritt, det brukes for ODBC-brukernavnet
- "$password" er valgfritt, det brukes for ODBC-passordet
Eksemplet som brukes antar at du;
- Bruker Windows OS
- Du har opprettet en ODBC-kobling til nordvinden Microsoft Access database kalt northwind
Nedenfor er implementeringskoden for ODBC-datatilgang
<?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);
?>
Sammendrag
- MySQL er en รฅpen kildekode relasjonsdatabaseadministrasjon tilgjengelig pรฅ de fleste webhotellservere
- PHP har en rik samling av innebygde funksjoner som forenkler arbeidet med MySQL
- PDO er akronymet for PHP Data Object; den brukes til รฅ koble til forskjellige databasemotorer med samme objekt
- PHP bruker odbc_connect-funksjonen til รฅ manipulere databaser via ODBC

