PHP MySQLi Functies: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP heeft een rijke verzameling ingebouwde functies voor manipulatie MySQL databases.
PHP mysqli_connect-functie
De PHP mysql connect-functie wordt gebruikt om verbinding te maken met een MySQL database server.
De syntaxis is als volgt.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
HIER,
- “$db_handle” is de bronvariabele van de databaseverbinding.
- “mysqli_connect(…)” is de functie voor php-databaseverbinding
- “$server_name” is de naam of het IP-adres van de serverhosting MySQL server.
- “$user_name” is een geldige gebruikersnaam in MySQL server.
- “$password” is een geldig wachtwoord dat is gekoppeld aan een gebruikersnaam in MySQL server.
PHP mysqli_select_db-functie
De functie mysqli_select_db wordt gebruikt om een database te selecteren.
De syntaxis is als volgt.
<?php mysqli_select_db($db_handle,$database_name); ?>
HIER,
- “mysqli_select_db(…)” is de databaseselectiefunctie die true of false retourneert
- “$database_name” is de naam van de database
- “$link_identifier” is optioneel, het wordt gebruikt om de serververbindingslink door te geven
PHP mysqli_query-functie
De mysqli_query-functie wordt gebruikt om uit te voeren SQL queries.
De functie kan worden gebruikt om de volgende querytypen uit te voeren;
- Invoegen
- Selecteren
- bijwerken
- verwijderen
De syntaxis is als volgt.
<?php mysqli_query($db_handle,$query) ; ?>
HIER,
- “mysqli_query(…)” is de functie die de SQL-query’s uitvoert.
- “$query” is de SQL-query die moet worden uitgevoerd
- “$link_identifier” is optioneel, het kan gebruikt worden om de serververbindingslink door te geven
PHP mysqli_num_rows-functie
De functie mysqli_num_rows wordt gebruikt om het aantal rijen op te halen dat wordt geretourneerd door een selectiequery.
De syntaxis is als volgt.
<?php mysqli_num_rows($result); ?>
HIER,
- “mysqli_num_rows(…)” is de rijtelfunctie
- “$result” is de mysqli_query-resultaatset
PHP mysqli_fetch_array-functie
De functie mysqli_fetch_array wordt gebruikt om rij-arrays op te halen uit een queryresultaatset.
De syntaxis is als volgt.
<?php mysqli_fetch_array($result); ?>
HIER,
- “mysqli_fetch_array(…)” is de functie voor het ophalen van rij-arrays
- “$result” is het resultaat dat wordt geretourneerd door de functie mysqli_query.
PHP mysqli_close-functie
De functie mysqli_close wordt gebruikt om een open databaseverbinding te sluiten.
De syntaxis is als volgt.
<?php mysqli_close($db_handle); ?>
HIER,
- “mysqli_close(…)” is de PHP-functie
- “$link_identifier” is optioneel, het wordt gebruikt om de serververbindingsbron door te geven
Laten we eens kijken naar praktische voorbeelden die van deze functies profiteren.
Het maken van de MySQL database Deze tutorial veronderstelt kennis van MySQL en SQL, als deze termen u niet bekend zijn, raadpleeg dan onze MySQL en SQL-tutorials.
We zullen een eenvoudige database maken met de naam my_personal_contacts met slechts één tabel.
Hieronder vindt u de stappen om de database en tabel te maken.
- Aansluiten op MySQL met behulp van uw favoriete toegangstool, zoals MySQL werkbank, phpMyAdmin etc.
- Maak een database met de naam my_person_contacts
- Voer het onderstaande script uit om de tabel te maken en enkele dummygegevens in te voegen
<?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'); ?>
We hebben nu een database opgezet die we vanuit PHP zullen manipuleren.
Records uit de database lezen We gaan nu een programma maken dat de records uit de database afdrukt.
<?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 ?>
Het uitvoeren van de bovenstaande code retourneert de resultaten die worden weergegeven in het onderstaande diagram
Nieuwe records invoegen
Laten we nu naar een voorbeeld kijken waarbij een nieuw record aan onze tabel wordt toegevoegd. de onderstaande code toont de implementatie.
<?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 ?>
Door de bovenstaande codeuitvoer uit te voeren "Poseidon is succesvol toegevoegd aan uw contactenlijst", gaat u terug naar het geselecteerde queryvoorbeeld en haalt u uw contacten opnieuw op.
Kijk of Poseidon aan jouw lijst is toegevoegd.
Records bijwerken Laten we nu eens kijken naar een voorbeeld waarbij een record in de database wordt bijgewerkt.
Stel dat Poseidon zijn telefoonnummer en e-mailadres heeft gewijzigd.
<?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 ?>
Records verwijderen
Laten we nu eens kijken naar een voorbeeld waarbij records uit de database worden verwijderd. Laten we veronderstellen dat Venus een straatverbod tegen ons heeft, en dat we haar contactgegevens uit onze gegevens moeten verwijderen databank.
<?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-gegevenstoegangsobject PDO
De PDO is een klasse waarmee we verschillende database-engines kunnen manipuleren, zoals MySQL, PostGres, MS SQL Server enz.
De onderstaande code toont de databasetoegangsmethode met behulp van het PDO-object.
Opmerking: de onderstaande code veronderstelt kennis van SQL-taal, arrays, afhandeling van uitzonderingen en foreach-lus.
<?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(); } ?>
HIER,
- “try{…catch…}” is het blok voor de verwerking van uitzonderingen
- “$pdo = new PDO(“mysql…” maakt een instantie van het PDO-object en geeft de databasestuurprogramma’s, server- en databasenamen, gebruikers-id en wachtwoord door.
- “$pdo->setAtt...” stelt de kenmerken van de PDO-foutmodus en uitzonderingsmodus in
- “$pdo->exec('SET NA...” stelt het coderingsformaat in
ODBC ODBC is het acroniem voor Open Database Connectivity. Het heeft de volgende basissyntaxis.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
HIER,
- “odbc_connect” is de ingebouwde PHP-functie
- “$dsn” is de naam van de ODBC-gegevensbron.
- “$user_name” is optioneel en wordt gebruikt voor de ODBC-gebruikersnaam
- “$password” is optioneel en wordt gebruikt voor het ODBC-wachtwoord
In het gebruikte voorbeeld wordt ervan uitgegaan dat je;
- Gebruiken Windows OS
- Je hebt een ODBC-link naar de noordenwind gemaakt Microsoft Toegang tot database met de naam Northwind
Hieronder vindt u de implementatiecode voor ODBC-gegevenstoegang
<?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); ?>
Samenvatting
- MySQL is een open source relationeel databasebeheer dat beschikbaar is op de meeste webhostingservers
- PHP heeft een rijke verzameling ingebouwde functies die het werken vereenvoudigen MySQL
- PDO is de afkorting voor PHP Data Object; het wordt gebruikt om verbinding te maken met verschillende database-engines die hetzelfde object gebruiken
- PHP gebruikt de odbc_connect-functie om databases via ODBC te manipuleren