PHP MySQL Select-Daten
Wählen Sie Daten aus einer MySQL-Datenbank aus
Die SELECT-Anweisung wird verwendet, um Daten aus einer oder mehreren Tabellen auszuwählen:
SELECT column_name(s)
FROM table_name
oder wir können das Zeichen * verwenden, um ALLE Spalten aus einer Tabelle auszuwählen:
SELECT *
FROM table_name
Um mehr über SQL zu erfahren, besuchen Sie bitte unser SQL-Tutorial .
Wählen Sie Daten mit MySQLi
Im folgenden Beispiel werden die Spalten „id“, „firstname“ und „lastname“ aus der Tabelle „MyGuests“ ausgewählt und auf der Seite angezeigt:
Beispiel (MySQLi objektorientiert)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Codezeilen zur Erläuterung aus dem obigen Beispiel:
Zuerst richten wir eine SQL-Abfrage ein, die die Spalten „id“, „firstname“ und „lastname“ aus der Tabelle „MyGuests“ auswählt. Die nächste Codezeile führt die Abfrage aus und fügt die resultierenden Daten in eine Variable namens $result ein.
Dann num_rows()
prüft die Funktion, ob mehr als null Zeilen zurückgegeben werden.
Wenn mehr als null Zeilen zurückgegeben werden, fügt die Funktion fetch_assoc()
alle Ergebnisse in ein assoziatives Array ein, das wir durchlaufen können. Die while()
Schleife durchläuft die Ergebnismenge und gibt die Daten aus den Spalten id, firstname und lastname aus.
Das folgende Beispiel zeigt dasselbe wie das obige Beispiel auf die prozedurale Weise von MySQLi:
Beispiel (MySQLi-Prozedur)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
Sie können das Ergebnis auch in eine HTML-Tabelle einfügen:
Beispiel (MySQLi objektorientiert)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
Daten mit PDO auswählen (+ vorbereitete Anweisungen)
Das folgende Beispiel verwendet vorbereitete Anweisungen.
Es wählt die Spalten id, firstname und lastname aus der MyGuests-Tabelle aus und zeigt sie in einer HTML-Tabelle an:
Beispiel (PDO)
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>