我有一个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());
如果此查询成功,则会在DB中插入一行,请参阅下文;
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', ' ')";
}
这可能吗?
答案 0 :(得分:2)
看起来你是通过PHP的PDO接口连接到MySQL。您可以使用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])";