Keine Ausgabe trotz erfolgreicher Verbindung zur Datenbank
Ich habe eine Datenbank mit dem Namen "schalck" und darin eine Tabelle mit dem Namen "Schicht_A". Nun versuche ich, den Inhalt der Tabelle "Schicht_A" mit einer php-Datei auszulesen. Starte ich die php-Datei erhalte ich lediglich die Ausgabe "Verbindung erfolgreich" jedoch keine Werte aus der Tabelle. Ich habe schon alles Mögliche versucht, finde aber meinen Fehler nicht. Kann mir jemand sagen, was ich falsch mache ?
<?php
// Zum Aufbau der Verbindung zur Datenbank
$_db_host = "192.168.xx.xx:xxxx";
$_db_username = "schalck";
$_db_passwort = "xxxxxxxxxxxxxx";
$_db_name = "schalck";
$connect = mysqli_connect ($_db_host, $_db_username, $_db_passwort, $_db_name);
if ( $connect )
{
echo 'Verbindung erfolgreich: ';
}
$auswahl= mysql_select_db("Schicht_A", $connect);
$abfrage = "select id,Name,Vorname,PLZ from $auswahl";
$result = mysqli_query($connect, $abfrage) ;
while($dsatz = mysqli_fetch_assoc($result)){
echo $dsatz["id"] . ", " .
$dsatz["name"] . ", " .
$dsatz["vorname"] . ", " .
$dsatz["PLZ"]. "";}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 592410
Url: https://administrator.de/forum/keine-ausgabe-trotz-erfolgreicher-verbindung-zur-datenbank-592410.html
Ausgedruckt am: 22.12.2024 um 12:12 Uhr
5 Kommentare
Neuester Kommentar
Hi,
das liegt daran, dass du hier die Variable auswahl, die ja eine PHP Variable ist, nicht entsprechend kennzeichnest, so ist das erstmal alles Teil deiner SQL-Statements.
Du musst das also passend zusammensetzen: siehe hier: https://www.php.net/manual/de/language.operators.string.php
Grüße
tomolpi
PS: Das ganze ist anfällig für SQL Injection, würde ich also so nicht machen.
Mehr dazu hier: https://www.php.net/manual/de/security.database.sql-injection.php
das liegt daran, dass du hier
$abfrage = "select id,Name,Vorname,PLZ from $auswahl";
Du musst das also passend zusammensetzen:
$abfrage = "select id,Name,Vorname,PLZ from " . $auswahl;
Grüße
tomolpi
PS: Das ganze ist anfällig für SQL Injection, würde ich also so nicht machen.
Mehr dazu hier: https://www.php.net/manual/de/security.database.sql-injection.php
Überlege einfach, was du da zusammen baust, dein Ziel ist es ja folgenden Text zu kreieren:
$auswahl muss dann also ein normaler String sein, also
Auch gehört im Beispiel von tomolpi das letzte Anführungszeichen weg, also:
"select id,Name,Vorname,PLZ from Schicht_A"
$auswahl muss dann also ein normaler String sein, also
$auswahl = "Schicht_A";
Auch gehört im Beispiel von tomolpi das letzte Anführungszeichen weg, also:
$abfrage = "select id,Name,Vorname,PLZ from " . $auswahl;
noch ein Tipp am Rande... einige gehostete MySQL Varianten haben eine strikte Syntax-Prüfung. Die erwarten dann ein ; als Befehlsende... bin ein gebranntest Kind, hab früher im Dreamweaver MX dutzende von MySQL / PHP version 3 basierten Seiten geamcht, die dann in meiner eigenen Installation zuhause auch sauber liefen, beim Provider eingespielt und die Connects geändert, lief dann auch beim Provider.
Nur haben die Provider dann tlw ohne Vorankündigung die PHP und die MySQL Version hochgesetzt, dazu auch noch den Errorlevel ignoriert so daß am Ende viele Abfragen ohne Ergebnis waren.
Nur haben die Provider dann tlw ohne Vorankündigung die PHP und die MySQL Version hochgesetzt, dazu auch noch den Errorlevel ignoriert so daß am Ende viele Abfragen ohne Ergebnis waren.