Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso depurar por que a consulta MySQL mais simples retorna false?


Uma atualização obrigatória :como o mysql ext não existe mais, aqui estão as respostas para duas APIs MySQL restantes que escrevi no meu site com base na experiência de responder a perguntas de 1000 no Stack Overflow:

Resumindo, para mysqi a seguinte linha deve ser adicionada antes de mysqli_connect() ligar:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

enquanto para PDO o modo de erro adequado deve ser definido, por exemplo
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

A partir do antigo mysql ext,

Para obter um erro de mysql_query() você tem que usar mysql_error() function.
Portanto, sempre execute todas as suas consultas dessa maneira, pelo menos até desenvolver um manipulador de consultas mais avançado:
$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

o problema com sua consulta atual é 'users' papel. Aspas simples devem ser usadas para delimitar strings, enquanto para os identificadores você deve usar acentos graves:
SELECT * FROM `users`

Para ver esses erros durante o desenvolvimento, adicione estas linhas na parte superior do seu código para ter certeza de que você pode ver todos os erros ocorridos
ini_set('display_errors',1);
error_reporting(E_ALL);

no servidor de produção, no entanto, o valor na primeira linha deve ser alterado de 1 para 0