У меня есть 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])";