PHP: stmt-> execute () завершается с ошибкой, но ошибка пуста

Следующий фрагмент находится в моем php-файле, который фигурирует как интерфейс REST.

(...) if ($stmt = $connection->prepare("INSERT INTO Resource VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)")){ $stmt->bind_param("sssssssii", $email, $timestamp, $title, $desc, $lat, $lng, $alt, $full, $cat); // 1) if($stmt->execute()){ // insertion of Resource successful // 2) }else{ // insertion of Resource failed echo "INSERTION_RESOURCE_FAILED"; $stmt->close(); die; } (...) 

В предыдущей версии, которая была выполнена правильно, в качестве параметров не было двух дополнительных целочисленных полей. Я «отлаживал» файл php, размещая там эхо. В позиции 1) я получил эхо назад, в позиции 2) нет. Это означает, что stmt-> execute () терпит неудачу. Но если это не удается, почему я не получаю эхо блока else? Как лучше отлаживать такие проблемы? Обратите внимание, что я проверил значения POST, они верны.

Я также объявил

error_reporting(E_ALL);

сразу после <?php , и

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

после каждого набора запросов. Тем не менее, ошибка не повторяется. В чем может быть проблема? ~

ОБНОВИТЬ

Как упоминал Линус, это был недостающий display_errors() . Поэтому, наконец, я узнал, что это проблема с внешним ключом. Но, благодаря вашему ответу, я наконец-то смог отладить php в каком-нибудь приятном!