PHP MySQLi Funktionen: mysqli_query & mysqli_connect
โก Intelligente Zusammenfassung
MySQLMit PHP und anderen Datenbankzugriffsmethoden kann ein PHP-Skript eine Verbindung zu einer Datenbank herstellen, Abfragen ausfรผhren und Ergebnisse lesen. Diese Anleitung behandelt die wichtigsten mysqli-Funktionen, vollstรคndige CRUD-Beispiele, vorbereitete Anweisungen fรผr mehr Sicherheit sowie die alternativen Zugriffsmethoden PDO und ODBC.

PHP verfรผgt รผber eine umfangreiche Sammlung integrierter Funktionen zur Manipulation von MySQL Datenbanken.
PHP mysqli_connect-Funktion
Die PHP-Funktion mysqli_connect wird verwendet, um eine Verbindung zu einem SQL Server herzustellen. MySQL Datenbankserver.
Es hat die folgende Syntax.
<?php $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
HIER,
- โ$db_handleโ ist die Datenbankverbindungsressourcenvariable.
- โmysqli_connect(โฆ)โ ist die Funktion fรผr die PHP-Datenbankverbindung.
- โ$db_server_nameโ ist der Name oder die IP-Adresse des Servers, auf dem die Datenbank gehostet wird. MySQL Server.
- โ$db_user_nameโ ist ein gรผltiger Benutzername in der MySQL Server.
- โ$db_passwordโ ist ein gรผltiges Passwort, das einem Benutzernamen in der Datenbank zugeordnet ist. MySQL Server.
PHP mysqli_select_db-Funktion
Die Funktion mysqli_select_db wird zum Auswรคhlen einer Datenbank verwendet.
Es hat die folgende Syntax.
<?php mysqli_select_db($db_handle, $database_name); ?>
HIER,
- โmysqli_select_db(โฆ)โ ist die Datenbankauswahlfunktion, die entweder true oder false zurรผckgibt
- โ$db_handleโ ist der Serververbindungslink.
- โ$database_nameโ ist der Name der Datenbank
PHP mysqli_query-Funktion
Die Funktion mysqli_query wird verwendet zur Ausfรผhrung SQL Abfragen.
Die Funktion kann zur Ausfรผhrung der folgenden Abfragetypen verwendet werden:
- Insert
- Auswรคhlen
- Update
- Lรถschen
Es hat die folgende Syntax.
<?php mysqli_query($db_handle, $query); ?>
HIER,
- โmysqli_query(โฆ)โ ist die Funktion, die die SQL-Abfragen ausfรผhrt.
- โ$db_handleโ ist der Serververbindungslink.
- โ$queryโ ist die auszufรผhrende SQL-Abfrage
PHP mysqli_num_rows-Funktion
Die Funktion mysqli_num_rows wird verwendet, um die Anzahl der von einer Auswahlabfrage zurรผckgegebenen Zeilen abzurufen.
Es hat die folgende Syntax.
<?php mysqli_num_rows($result); ?>
HIER,
- โmysqli_num_rows(โฆ)โ ist die Zeilenzรคhlfunktion
- โ$resultโ ist der mysqli_query-Ergebnissatz
PHP mysqli_fetch_array-Funktion
Die Funktion mysqli_fetch_array dient dazu, Zeilenarrays aus einem Abfrageergebnis-Set abzurufen.
Es hat die folgende Syntax.
<?php mysqli_fetch_array($result); ?>
HIER,
- โmysqli_fetch_array(โฆ)โ ist die Funktion zum Abrufen von Zeilenarrays
- โ$resultโ ist das von der Funktion mysqli_query zurรผckgegebene Ergebnis.
PHP mysqli_close-Funktion
Die Funktion mysqli_close wird verwendet, um eine offene Datenbankverbindung zu schlieรen.
Es hat die folgende Syntax.
<?php mysqli_close($db_handle); ?>
HIER,
- โmysqli_close(โฆ)โ ist die PHP-Funktion, die die Verbindung schlieรt.
- โ$db_handleโ ist die Serververbindungsressource
PHP MySQL CRUD-Beispiele
Betrachten wir nun praktische Beispiele, die diese Funktionen nutzen. Dieses Tutorial setzt Kenntnisse in folgenden Bereichen voraus: MySQL und SQL; falls Ihnen diese Begriffe nicht gelรคufig sind, konsultieren Sie unsere MySQL und SQL-Tutorials.
Wir erstellen eine einfache Datenbank namens โmy_personal_contactsโ mit nur einer Tabelle. Verbinden Sie sich mit MySQL Verwenden Sie Ihr bevorzugtes Zugriffstool, z MySQL Erstellen Sie mit Workbench oder phpMyAdmin eine Datenbank mit dem Namen my_personal_contacts und fรผhren Sie dann das unten gezeigte Skript aus, um die Tabelle zu erstellen und einige Beispieldaten einzufรผgen.
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');
Auslesen von Datensรคtzen aus der Datenbank
Wir erstellen nun ein Programm, das die Datensรคtze aus der Datenbank ausgibt.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $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($dbh)); $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 ?>
Die Ausfรผhrung des obigen Codes liefert die im folgenden Diagramm dargestellten Ergebnisse.
Einfรผgen neuer Datensรคtze
Betrachten wir nun ein Beispiel, das einen neuen Datensatz in unsere Tabelle einfรผgt. Der folgende Code zeigt die Implementierung.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= " VALUES(7,8,9,10,11,12)"; $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Adding record failed: " . mysqli_error($dbh)); echo "Poseidon has been successfully added to your contacts list"; mysqli_close($dbh); // close the database connection ?>
Die Ausfรผhrung des obigen Codes gibt die Meldung โPoseidon wurde erfolgreich zu Ihrer Kontaktliste hinzugefรผgtโ aus. Gehen Sie zurรผck zum Beispiel der SELECT-Abfrage und rufen Sie Ihre Kontakte erneut ab, um zu รผberprรผfen, ob Poseidon Ihrer Liste hinzugefรผgt wurde.
Akten aktualisieren
Betrachten wir nun ein Beispiel, das einen Datensatz in der Datenbank aktualisiert. Nehmen wir an, Poseidon habe seine Telefonnummer und E-Mail-Adresse geรคndert.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = 8, `email` = 9"; $sql_stmt .= " WHERE `id` = 5"; // SQL update query $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Updating record failed: " . mysqli_error($dbh)); echo "ID number 5 has been successfully updated"; mysqli_close($dbh); // close the database connection ?>
Datensรคtze lรถschen
Betrachten wir nun ein Beispiel, das Datensรคtze aus der Datenbank entfernt. Nehmen wir an, Venus hat eine einstweilige Verfรผgung gegen uns erwirkt, und wir mรผssen ihre Kontaktdaten aus unserer Datenbank entfernen. Datenbank.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $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($dbh)); echo "ID number $id has been successfully deleted"; mysqli_close($dbh); // close the database connection ?>
Verhinderung von SQL-Injection durch vorbereitete Anweisungen
Die oben genannten CRUD-Beispiele erstellen Abfragen durch die Verkettung von Zeichenketten. Wenn ein Teil einer Abfrage von Benutzereingaben stammt, รถffnet dies die Tรผr fรผr SQL-Injection. Vorbereitete Anweisungen lรถsen dieses Problem, indem sie die Abfrage und die Daten separat senden, sodass die Eingabe die Abfragestruktur niemals verรคndern kann.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); $stmt = mysqli_prepare($dbh, "INSERT INTO my_contacts (full_names, email) VALUES (?, ?)"); mysqli_stmt_bind_param($stmt, "ss", $name, $email); $name = 'Poseidon'; $email = 'poseidon@sea.oc'; mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); mysqli_close($dbh); ?>
Die Fragezeichen dienen hier als Platzhalter, und `bind_param` bindet die Werte fรผr Name und E-Mail sicher. Die Datenbank behandelt sie strikt als Daten. Daher sind vorbereitete Anweisungen, die sowohl in mysqli als auch in PDO verfรผgbar sind, die empfohlene Methode, um Abfragen mit Benutzereingaben auszufรผhren.
PHP Data Access Object (PDO)
PDO ist eine Klasse, die es uns ermรถglicht, verschiedene Datenbank-Engines zu manipulieren, wie zum Beispiel MySQL, PostgreSQLund MS SQL Server, die dieselbe Schnittstelle verwenden.
Der folgende Code zeigt die Datenbankzugriffsmethode mithilfe des PDO-Objekts.
Hinweis: Der folgende Code setzt Kenntnisse der SQL-Sprache, von Arrays, der Ausnahmebehandlung und der foreach-Schleife voraus.
<?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{โฆ}โ ist der Ausnahmebehandlungsblock.
- โ$pdo = new PDO(โmysqlโฆโ erstellt eine Instanz des PDO-Objekts und รผbergibt den Datenbanktreiber, Server- und Datenbanknamen, die Benutzer-ID und das Passwort.
- โ$pdo->setAttributeโฆโ legt den PDO-Fehlermodus so fest, dass Ausnahmen ausgelรถst werden.
- โ$pdo->exec('SET NAMESโฆ') legt das Kodierungsformat fest.
PHP ODBC-Datenzugriff
ODBC ist die Abkรผrzung fรผr Open Database Connectivity. Es hat die folgende grundlegende Syntax.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
HIER,
- โodbc_connectโ ist die in PHP integrierte Funktion
- โ$dsnโ ist der Name der ODBC-Datenquelle.
- โ$user_nameโ ist optional und wird fรผr den ODBC-Benutzernamen verwendet.
- โ$passwordโ ist optional und wird fรผr das ODBC-Passwort verwendet.
Das folgende Beispiel setzt voraus, dass Sie verwenden Windows und haben eine ODBC-Verbindung zum Northwind hergestellt Microsoft Zugriff auf eine Datenbank mit dem Namen Northwind.
<?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 accessing 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); ?>

