sql >> Database >  >> RDS >> Mysql

Hoe kan ik debuggen waarom de eenvoudigste MySQL-query false retourneert?

Een verplichte update :aangezien mysql ext niet meer is, zijn hier de antwoorden voor twee resterende MySQL API's die ik op mijn site heb geschreven op basis van de ervaring van het beantwoorden van duizenden vragen over Stack Overflow:

Kortom, voor mysqi moet de volgende regel worden toegevoegd vóór mysqli_connect() bel:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

terwijl voor PDO de juiste foutmodus moet worden ingesteld, bijvoorbeeld

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

Vanaf de oude mysql ext,

Om een ​​foutmelding te krijgen van mysql_query() je moet mysql_error() . gebruiken functie.
Voer dus altijd al uw zoekopdrachten op deze manier uit, in ieder geval totdat u een meer geavanceerde query-handler ontwikkelt:

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

het probleem met uw huidige zoekopdracht is 'users' deel. Enkele aanhalingstekens moeten worden gebruikt om strings af te bakenen, terwijl u voor de identifiers backticks moet gebruiken:

SELECT * FROM `users`

Om deze fouten tijdens de ontwikkeling te zien, voegt u deze regels toe aan de bovenkant van uw code om er zeker van te zijn dat u elke opgetreden fout kunt zien

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

op de productieserver moet de waarde op de eerste regel echter worden gewijzigd van 1 in 0



  1. Reset cursorpositie in PDO

  2. Schakel root-aanmelding uit in phpMyAdmin

  3. SQL Server - vind het nde voorkomen in een string

  4. Oplossing:toegang geweigerd voor gebruiker 'root'@'localhost' in MariaDB