Intereting Posts
PHP open_basedir с UNC-контуром команда dump-autoload от php Вызов функции-члена prepare () Что случилось с этим? OOP Является ли ASCII «../» единственной последовательностью байтов, которая указывает на обход каталога в PHP? получить все изображения из папки в php Создание нового поля атрибутов в каталоге-> Управление категориями-> Настройки отображения с помощью google-api-php-клиента, неспособного создать правильный signedurl Преобразование строки из 1s и 0s в двоичное значение, затем сжимать потом, PHP Как проверить, существует ли файл на внешнем сервере PHP Добавить тире для декодирования Реализация процесса загрузки файлов с помощью Zend Ошибка воспроизведения демонстрации «Вы не можете определить элемент последовательности, когда в картировании» PHP-поток загружает содержимое веб-сайта до тех пор, php include_once не работает Расширение openssl требуется для защиты SSL / TLS

Сохранить ошибку в базе данных MySQL

У меня есть php-запрос для обновления базы данных MySQL, см. Ниже

$sql=("update hr_payroll set payroll_number='$payroll_number', tax_code='$tax', bacs_ref='$bacs_ref', pay_frequency='$pay', last_update_by='$user' where employee_id='$employee'")or die('Could not connect: Error 23 ' . mysql_error()); 

Если этот запрос успешный, строка вставляется в БД, см. Ниже;

 if ($conn->query($sql) === TRUE) { $sql1 = "INSERT INTO audit_hr_employees (tab, employee, error_type, user, result) VALUES ('4a', '$employee', 'info', '$user', 'success')"; } 

Все это прекрасно работает … Однако, если запрос не увенчался успехом, я хочу сделать то же самое, что и выше, но добавить ошибку или запрос в базу данных.

Ниже приведен фрагмент моего кода, я хочу, чтобы информация была добавлена ​​в столбец error_info .

 else { $sql2 = "INSERT INTO audit_hr_employees (tab, employee, error_type, user, error_info) VALUES ('4a', '$employee', 'warning', '$user', ' ')"; } 

Это возможно?

Похоже, вы подключаетесь к MySQL через PHP-интерфейс PDO. Вы можете использовать errorInfo() ( http://php.net/manual/en/pdo.errorinfo.php ), чтобы получить последнее сообщение об ошибке и использовать это вместо пустой строки:

 $err = $dbh->errorInfo(); $sql2 = "INSERT INTO audit_hr_employees (tab, employee, error_type, user, error_info) VALUES ('4a', '$employee', 'warning', '$user', $err[2])";