Catch не сообщает об ошибке при сбое mysqli INSERT.

Я уверен, что это основная ошибка, но несколько часов я все еще в тупике. Я просмотрел около десятка «улов не работает», и ни один из них не показался мне полезным.

Я унаследовал этот бит кода. ВСЕ переменные имеют значения (хотя некоторые являются пустыми строками). Больше, чем основная проблема здесь, я беспокоюсь, что мой catch не перехватывает ошибки (ранее оператор пытался сохранить значение в столбце, который не существовал и даже не выдавал исключение).

У меня есть это наверху. (Сначала я попробовал с двумя утверждениями вместе, но это дало проблему — не могу вспомнить, что.)

$mysqli = new mysqli("localhost", "", "", ""); // private stuff taken out
mysqli_report(MYSQLI_REPORT_STRICT);
mysqli_report(MYSQLI_REPORT_ERROR);

Это основной код

$packageResult = $mysqli->query("INSERT INTO package (user_id,
package_name, weight, tracking_number, size_width, size_depth, size_height,
source, carrier, instructions, sent,ot48code) VALUES ({$_SESSION['id']},
'{$_POST['packageName']}', '{$_POST['weight']}',
'{$_POST['tracking_number']}', '{$_POST['width']}', '{$_POST['depth']}',
'{$_POST['height']}', '{$_POST['source']}', '{$_POST['carrier']}',
'{$_POST['instructions']}',  NOW()),$ot48code");

Я немного отладил и, хотя $packageResult возвращается ЛОЖЬ, catch код никогда не доступен. (Использование Xdebug в PhpStorm.)

 catch (Exception $e)
{
echo "<pre>";
echo "<br>";
echo "ses testing at 171";
@var_dump($_SESSION);
echo "<br>";
...
echo $e->getMessage();

Это правильно для catch?

(PS Я знаю, что все это ужасно небезопасно, но это для альфы, и я медленный машинистка и довольно ужасный программист (без памяти).)

-1

Решение

Ловить ОШИБКИ а также исключения, кажется, вам нужно

mysqli_report(MYSQLI_REPORT_ALL);

Эта строка спасла меня.

Я думал, что:

mysqli_report(MYSQLI_REPORT_ERROR);

сделал бы работу, но …

Надеюсь, это поможет, если вы столкнетесь с той же проблемой.

Большое спасибо @pec.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector