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

PHP: MySQL Funksjoner

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

Oppsummer dette innlegget med: