Frage von lars31the, 37

Probleme bei Zugriff auf Datenbank mit PHP!?

Ich habe bei folgendem Quellcode dieses Ergebnis. Woran liegt das? Bedanke mich jetzt sc hon mal für Antworten.
PHP-Test <?php mysql_connect("localhost", "root", ""); mysql_select_db("bvm"); $res = mysql_query("select * from tage"); $num = mysql_num_rows($res); echo "num Datensätze gefunden
"; ?>

Antwort
von mastema666, 21

Was ist denn die Fehlermeldung?

Möglicherweise benutzt der Webserver PHP7, dann kannst du die veralteten "mysql_*" Funktionen nicht mehr benutzen, stattdessen lieber PDO nutzen: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

Ansonsten sieht dein Code, bis auf die unschöne Formatierung (Groß-/Kleinschreibung), aber korrekt aus. Nur wirst du so natürlich nicht die Anzahl der Datensätze angezeigt bekommen, sondern einfach nur den Text "num Datensätze gefunden". Damit dort der Inhalt von $num angezeigt wird solltest du das so schreiben:

echo $num .' Datensätze gefunden';
Antwort
von CalicoSkies, 10

Servus lars31the,

Ich formatiere deinen Quellcode mal schnell mit dem Code-Tag:

mysql_connect("localhost", "root", ""); 
mysql_select_db("bvm");
$res = mysql_query("select * from tage");
$num = mysql_num_rows($res);
echo "num Datensätze gefunden";

Prinzipiell ist der Code größtenteils richtig, du gibst unten nur "num" aus anstatt der Variablen $num, was du aber relativ einfach lösen kannst, indem du die Zeile zu

echo "$num Datensätze gefunden";

änderst.

Prinzipiell solltest du aber nicht die alten Funktionen, sondern die Mysqli-Variante benutzen. :)

Das gibt es einmal mit Objektorientierung, und einmal ohne Objektorientierung - ohne sieht das eigentlich auch nicht anders aus, als du es geschrieben hast:

$db = mysqli_connect("localhost", "root", "");
mysqli_select_db($db, "bvm");
$res = mysqli_query($db, "SELECT * FROM tage");
$num = mysqli_num_rows($result);
echo "$num Datensätze gefunden";

Mit Objektorientierung wird es klarer:

$db = new mysqli("localhost", "root", "");
$db->select_db("bvm");
$res = $db->query("SELECT * FROM tage");
$num = $res->num_rows();
echo "$num Datensätze gefunden";

Im Endeffekt sollte dein Code aber laufen - was bekommst du denn Für einen Fehler?

Lg

Kommentar von TypischMS ,

sehr schön aufgeschrieben :)

Kommentar von waswesich ,

...Ja, Perfekt ;-)

Antwort
von LeonardM, 7

echo $num." Beitr&a uml;ge gefunden"; so sollte es sein. Das auml zusammenschreiben ich musste es wegen gf so machen

Antwort
von Xandoo94, 12

PDO ist das Stichwort ist auch sicherer gegen Injektions

Antwort
von TypischMS, 20

Ich verwende immer PDO, dazu gibt es hier eine meiner Meinung nach sehr gute Anleitung:

https://www.php-einfach.de/mysql-tutorial/

Viel Spaß :)

Kommentar von TypischMS ,

Achso: versuche es sonst mal mit folgendem:

$res = mysql_query("SELECT * FROM tage"); // groß schreiben
echo "$num Datensätze gefunden"; // $ vergessen
Kommentar von CalicoSkies ,

Groß- und Kleinschreibung ist bei SQL unwichtig, wenn es um die Token geht - es ist aber ne Konvention, dass man das großschreibt (so kann man Keywords leichter von Identifiern unterscheiden)

Antwort
von Tschoo, 12

Kennwort mitschicken ...

Oder besser, was funktioniert nicht??

Keine passende Antwort gefunden?

Fragen Sie die Community