Задължителна актуализация :тъй като mysql ext вече не е, ето отговори за два оставащи MySQL API, които написах на моя сайт въз основа на опита от отговарянето на въпроси от 1000s в Stack Overflow:
- Как да докладвате за грешки в mysqli
- Как да се свържете с MySQL чрез PDO (с цел правилно отчитане на грешки).
Накратко, за mysqi следният ред трябва да се добави преди mysqli_connect()
обадете се:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
докато за PDO трябва да се настрои правилният режим на грешка, например
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
От стария mysql ext,
За да получите грешка от mysql_query()
трябва да използвате mysql_error()
функция.
Така че винаги изпълнявайте всичките си заявки по този начин, поне докато не разработите по-усъвършенстван манипулатор на заявки:
$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);
проблемът с текущата ви заявка е 'users'
част. Единични кавички трябва да се използват за разделяне на низове, докато за идентификаторите трябва да използвате обратни тикчета:
SELECT * FROM `users`
За да видите тези грешки по време на разработката, добавете тези редове в горната част на кода си, за да сте сигурни, че можете да видите всяка възникнала грешка
ini_set('display_errors',1);
error_reporting(E_ALL);
на производствения сървър обаче стойността на първия ред трябва да се промени от 1 на 0