2016-02-05 16 views
5

Attualmente sto imparando MySql, ma ho riscontrato questo problema. il seguente codice dovrebbe solo interrogare il db per tutto nella tabella degli utenti. ma restituisce questo errore. Error: SELECT * FROM users che non mi aiuta affatto. Sono in grado di inserire correttamente un elemento nel database, ma non riesco a selezionarlo. Ho anche provato $sql = "SELECT * FROM ama.users"; la mia struttura DB èErrore prodotto da mysql selezionare

ama 
|-users 

qualsiasi aiuto sarebbe molto apprezzato.

$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

si prega di aggiungere il messaggio di errore completo – Jens

+0

@Jens che è il messaggio di errore completo che mi dà .. se ha dato più id è in grado di eseguire il debug di meglio. – hurnhu

+1

Fare === TRUE non funzionerà su una selezione, perché restituisce un oggetto risorsa o null. Quindi == TRUE dovrebbe funzionare comunque. === è un controllo di tipo rigoroso, il che significa che deve essere un booleano e un oggetto risorsa non è un booleano. – Asperon

risposta

5

Dal PHP Manual:

mysqli :: query restituirà oggetto in successo e restituire false in fallimento.

Così si può utilizzare senza controllare il tipo di dati (===):

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

Per ulteriori migliore comprensione è possibile utilizzare var_dump() e verificare dove vuoi arrivare come:

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

Documentation dice:

Restituisce FALSE in caso di fallimento. Per il successo delle query SELECT, SHOW, DESCRIBE o EXPLAIN mysqli_query() restituirà un oggetto mysqli_result. Per altre query di successo mysqli_query() restituirà TRUE.

Quindi, fare qualcosa di simile

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

e quindi controllare le righe in seguito $

Problemi correlati