PHP MySQLi Funktioner: mysqli_query, mysqli_connect, mysqli_fetch_array

PHP har en rig samling af indbyggede funktioner til manipulation MySQL databaser.

PHP mysqli_connect funktion

PHP mysql connect-funktionen bruges til at oprette forbindelse til en MySQL database server.

Den har følgende syntaks.

<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

HER,

  • "$db_handle" er databaseforbindelsens ressourcevariabel.
  • "mysqli_connect(...)" er funktionen til php-databaseforbindelse
  • "$server_name" er navnet eller IP-adressen på serverhostingen MySQL serveren.
  • "$user_name" er et gyldigt brugernavn i MySQL serveren.
  • "$password" er en gyldig adgangskode forbundet med et brugernavn i MySQL serveren.

PHP mysqli_select_db funktion

Mysqli_select_db-funktionen bruges til at vælge en database.

Den har følgende syntaks.

<?php
mysqli_select_db($db_handle,$database_name);
?>

HER,

  • "mysqli_select_db(...)" er databasevalgsfunktionen, der returnerer enten sand eller falsk
  • "$database_name" er navnet på databasen
  • "$link_identifier" er valgfri, den bruges til at sende serverforbindelseslinket ind

PHP mysqli_query funktion

Mysqli_query-funktionen bruges til at udføre SQL forespørgsler.

Funktionen kan bruges til at udføre følgende forespørgselstyper;

  • indsatte
  • Type
  • Opdatering
  • slette

Den har følgende syntaks.

<?php
mysqli_query($db_handle,$query) ;
?>

HER,

  • "mysqli_query(...)" er den funktion, der udfører SQL-forespørgslerne.
  • "$query" er den SQL-forespørgsel, der skal udføres
  • "$link_identifier" er valgfri, den kan bruges til at sende serverforbindelseslinket

PHP mysqli_num_rows funktion

Funktionen mysqli_num_rows bruges til at få antallet af rækker returneret fra en udvalgt forespørgsel.

Den har følgende syntaks.

<?php
mysqli_num_rows($result);
?>

HER,

  • "mysqli_num_rows(...)" er rækketællingsfunktionen
  • "$result" er mysqli_query-resultatsættet

PHP mysqli_fetch_array funktion

Mysqli_fetch_array-funktionen bruges hente række-arrays fra et forespørgselsresultatsæt.

Den har følgende syntaks.

<?php
mysqli_fetch_array($result);
?>

HER,

  • "mysqli_fetch_array(...)" er funktionen til at hente rækkearrays
  • "$result" er resultatet, der returneres af funktionen mysqli_query.

PHP mysqli_close funktion

Mysqli_close-funktionen bruges til at lukke en åben databaseforbindelse.

Den har følgende syntaks.

<?php
mysqli_close($db_handle);
?>

HER,

  • "mysqli_close(...)" er PHP-funktionen
  • "$link_identifier" er valgfri, den bruges til at sende serverforbindelsesressourcen

Lad os se på praktiske eksempler, der udnytter disse funktioner.

Oprettelse af MySQL database Denne vejledning forudsætter kendskab til MySQL og SQL, hvis disse udtryk ikke er bekendte for dig, henvises til vores MySQL og SQL tutorials.

Vi vil oprette en simpel database kaldet my_personal_contacts med kun én tabel.

Nedenfor er trinene til at oprette databasen og tabellen.

  • Tilslut til MySQL ved at bruge dit foretrukne adgangsværktøj som f.eks MySQL workbench, phpMyAdmin osv.
  • Opret en database med navnet my_person_contacts
  • Udfør scriptet vist nedenfor for at oprette tabellen og indsætte nogle 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 nu en database sat op, som vi vil manipulere fra PHP.

Læsning af poster fra databasen Vi vil nu lave et program, der udskriver posterne 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 
?>

Udførelse af ovenstående kode returnerer resultaterne vist i diagrammet vist nedenfor

PHP: MySQL Funktioner

Indsættelse af nye poster

Lad os nu se på et eksempel, der tilføjer en ny rekord i vores tabel. 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 
?>

Udførelse af ovenstående kodeoutput "Poseidon er blevet tilføjet til din kontaktliste", gå tilbage til eksemplet med udvalgte forespørgsler og hent dine kontakter igen.

Se, om Poseidon er blevet tilføjet til din liste.

Opdatering af poster Lad os nu se på et eksempel, der opdaterer en post i databasen.

Lad os antage, at Poseidon har ændret sit kontaktnummer og e-mailadresse.

<?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 
?>

Sletning af poster

Lad os nu se på et eksempel, der fjerner poster fra databasen. Lad os antage, at Venus har et tilhold mod os, og vi skal fjerne hendes kontaktoplysninger fra vores 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 PDO

PDO'en er en klasse, der giver os mulighed for at manipulere forskellige databasemotorer som f.eks MySQL, PostGres, MS SQL Server osv.

Koden nedenfor viser databaseadgangsmetoden ved hjælp af PDO-objektet.

Bemærk: koden nedenfor forudsætter kendskab til SQL-sprog, arrays, undtagelseshå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 undtagelseshåndteringsblokken
  • "$pdo = new PDO("mysql..." opretter en forekomst af PDO-objektet og sender databasedriverne, server- og databasenavne, bruger-id og adgangskode.
  • "$pdo->setAtt..." indstiller PDO fejltilstand og undtagelsestilstand attributter
  • "$pdo->exec('SET NA..." indstiller kodningsformatet

ODBC ODBC er akronymet for Open Database Connectivity. Det har følgende grundlæggende syntaks.

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

HER,

  • "odbc_connect" er den indbyggede PHP-funktion
  • "$dsn" er ODBC-datakildens navn.
  • "$brugernavn" er valgfrit, det bruges til ODBC-brugernavnet
  • "$password" er valgfrit, det bruges til ODBC-adgangskoden

Det anvendte eksempel antager, at du;

  • Bruger Windows OS
  • Du har oprettet et ODBC-link til nordenvinden Microsoft Access-database med navnet northwind

Nedenfor er implementeringskoden for ODBC-dataadgang

<?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); 
?>

Resumé

  • MySQL er en open source relationel databasestyring tilgængelig på de fleste webhostingservere
  • PHP har en rig samling af indbyggede funktioner, der forenkler arbejdet med MySQL
  • PDO er akronymet for PHP Data Object; det bruges til at oprette forbindelse til forskellige databasemotorer ved hjælp af det samme objekt
  • PHP bruger odbc_connect-funktionen til at manipulere databaser via ODBC