schalck
Goto Top

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"]. "";}  

Content-Key: 592410

Url: https://administrator.de/contentid/592410

Printed on: April 25, 2024 at 02:04 o'clock

Member: tomolpi
tomolpi Jul 31, 2020 updated at 08:44:59 (UTC)
Goto Top
Hi,

das liegt daran, dass du hier
$abfrage = "select id,Name,Vorname,PLZ from $auswahl";  
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:
$abfrage = "select id,Name,Vorname,PLZ from " . $auswahl;  
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
Member: schalck
schalck Jul 31, 2020 at 08:20:29 (UTC)
Goto Top
Danke erst mal für die schnelle Antwort. Klappt leider trotzdem noch nicht
Member: SlainteMhath
SlainteMhath Jul 31, 2020 at 08:39:19 (UTC)
Goto Top
Moin,

Zeile 18: Die Funktion nennt sich nicht umsonst ...select_DB - die wählt die DatenBank aus, nicht die Tabelle!
Zeile 20: nach dem FROM kommt der Tabellenname! Also in deinem Fall Schicht_A

lg,
Slainte
Member: NordicMike
NordicMike Jul 31, 2020 updated at 09:40:04 (UTC)
Goto Top
Überlege einfach, was du da zusammen baust, dein Ziel ist es ja folgenden Text zu kreieren:
"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;  
Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Jul 31, 2020 at 08:44:20 (UTC)
Goto Top
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.