2016-02-05 22 views
5

Ich lerne derzeit MySql, aber IVE traf dieses Problem. der folgende Code sollte nur die Datenbank für alles in der Tabelle Benutzer abfragen. aber es gibt diesen Fehler zurück. Error: SELECT * FROM users was mir gar nicht hilft. Ich kann einen Artikel erfolgreich in die Datenbank einfügen, kann ihn jedoch nicht auswählen. Ich habe auch versucht $sql = "SELECT * FROM ama.users"; meine DB-Struktur istFehler von mysql erzeugt wählen

ama 
|-users 

jede Hilfe sehr geschätzt werden würde.

$conn = new mysqli($_ENV['OPENSHIFT_MYSQL_DB_HOST'],$_ENV['OPENSHIFT_MYSQL_DB_USERNAME'], $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD'], 'ama'); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$username = "Doe"; 
$password = "johnexample"; 
$sql = "SELECT * FROM users"; 
if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
+0

bitte hinzufügen die vollständige Fehlermeldung – Jens

+0

@Jens, das ist die vollständige Fehlermeldung, die es mir gibt .. wenn es mehr ID gab, kann besser debuggen. – hurnhu

+1

Doing === TRUE funktioniert nicht bei Auswahl, weil es ein Ressourcenobjekt oder null zurückgibt. Also == WAHR sollte funktionieren. === ist eine strenge Typprüfung, was bedeutet, dass es ein boolescher Wert sein muss und ein Ressourcenobjekt kein Boolescher Wert ist. – Asperon

Antwort

5

Von der PHP Manual:

mysqli :: Abfrage Objekt in Erfolg zurückkehren und false zurück fehlgeschlagen.

So können Sie es verwenden, ohne Datentyp Prüfung (===):

if ($conn->query($sql)) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

Weitere besseres Verständnis Sie var_dump() verwenden können, und überprüfen, was Sie bekommen, wie:

var_dump($conn->query($sql)); 
1

Documentation sagt:

Returns bei einem Fehler FALSE. Für erfolgreiche SELECT-, SHOW-, DESCRIBE- oder EXPLAIN-Abfragen gibt mysqli_query() ein mysqli_result-Objekt zurück. Für andere erfolgreiche Abfragen gibt mysqli_query() TRUE zurück.

Also, so etwas wie

$result= $db->query($sql); 

und überprüfen Sie die Zeilen in $ result