Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso eseguire il debug del motivo per cui la query MySQL più semplice restituisce false?

Un aggiornamento obbligatorio :poiché mysql ext non esiste più, ecco le risposte per le due API MySQL rimanenti che ho scritto sul mio sito in base all'esperienza di rispondere alle domande di 1000 su Stack Overflow:

In breve, per mysqi è necessario aggiungere la seguente riga prima di mysqli_connect() chiama:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

mentre per PDO è necessario impostare, ad esempio, la modalità di errore corretta

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

A partire dal vecchio mysql ext,

Per ottenere un errore da mysql_query() devi usare mysql_error() funzione.
Quindi esegui sempre tutte le tue query in questo modo, almeno fino a quando non sviluppi un gestore di query più avanzato:

$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

il problema con la tua query attuale è 'users' parte. Le virgolette singole devono essere utilizzate per delimitare le stringhe mentre per gli identificatori devi usare i backtick:

SELECT * FROM `users`

Per vedere questi errori durante lo sviluppo, aggiungi queste righe nella parte superiore del codice per essere sicuro di poter vedere tutti gli errori verificatisi

ini_set('display_errors',1);
error_reporting(E_ALL);

sul server di produzione, invece, il valore sulla prima riga dovrebbe essere modificato da 1 a 0