Hallo
SELECT Titel, Datum FROM Nachrichten ORDER BY Datum DESC LIMIT 3
Ich ergänze mal Jörgs Ausführungen ein wenig:
- die mysql-funktionen sind abgekündigt. Mach das also mit pdo oder mysqli.
Die mysql-Erweiterung wurde in der neusten PHP-Version 7 entfernt, nachdem sie bereits seit einiger Zeit als „veraltet“ gekennzeichnet wurde. Als Ersatz gibt es die pdo-Erweiterung und eben mysqli – bei letzterem reicht es meist, einfach alle mysql in mysqli umzuändern. Wenn ich mich nicht verguckt habe, sollte das mit deinem Code problemlos gehen.
Trotz meines +1 für deine einsteigerfreundlichen Ausführungen ein deutliches Nein zu „ reicht es meist, einfach alle mysql in mysqli umzuändern“.
Das einfache Umbenennen der Funktionsnamen von mysql_irgendwas
in mysqli_irgendwas
allein reicht nicht. Erstens setzen die mysqli-Funktionen bei Verwendung im prozeduralen Stil die Angabe der Verbindungskennung zwingend voraus, zweitens wird diese Kennung, im Gegensatz zu den mysql-Funktionen, als erster Funktionsparameter übergeben und drittens ist z.B. die Funktionalität von mysql_connect
und mysql_select_db
in einer Funktion mysqli_connect
zusammengefallen. Es gibt zwar auch eine Funktion mysqli_select_db
, die dient aber nur zur Änderung der Standarddatenbank der bestehenden Verbindung. Und dann sind da noch Funktionen, die anders heißen und/oder arbeiten.
Ich hoffe, das richtig aus der PHP-Doku zusammengeklaubt zu haben. Selbst mit MySQLi gearbeitet habe ich nämlich auch noch nicht.
<?php
$kennung = mysqli_connect("mysql.meinserver.de", "benutzername", "passwort", "meinedatenbank");
if (!$kennung) {
// nicht zustandegekommene Verbindung behandeln
// übrigens: die() ist außerhalb der Skriptentwicklung keine Fehlerbehandlung!
} else {
// Abfrage
$strSQL = "SELECT Titel, Datum FROM Nachrichten ORDER BY Datum DESC LIMIT 3";
if (mysqli_real_query($kennung, $strSQL)) {
// Gibt es ein Ergebnis?
if ($resultat = mysqli_use_result($kennung)) {
while ($row = mysqli_fetch_row($resultat)) {
// Ausgabe
echo $row['Titel'] . "<br />" . $row['Datum'] . "<br />";
}
mysqli_free_result($resultat);
} else {
// Meldung über nicht vorhandene Datensätze oder nix
}
}
}
mysqli_close($kennung);
?>
Egal, ob der hier zusammengeschusterte Code korrekt funktioniert oder nicht, er unterscheidet sich doch erheblich vom typischen Aufbau mit der alten MySQL-Bibliothek.
Tschö, Auge
Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview