我在MySQL里测试外键。目的是防止id进入table2,这在table1中是不存在的。我本来希望使用foreign keys只会导致一行没有被插入,但它似乎抛出了这个巨大的错误。我如何在PHP中处理这个问题?是否有一种方法可以使MySQL简单地不插入行而不返回返回的行?
致命错误:带有消息'SQLSTATE23000:完整性约束违反: 1452不能添加或更新子行:外键约束失败(
wp-db.borrowed,constraintborrowed_ibfk_1Integrity (employeeid)在更新级联上的删除级联引用employee(id) )的严重错误。 堆栈跟踪: #0 C:\web\apache\htdocs\dev\foreign.php(10):PDOStatement->execute() #1 {main}在第10行的C:\web\apache\htdocs\dev\foreign.php中抛出
发布于 2013-08-30 06:09:23
使用试接
try {
$pdo->exec ("QUERY WITH SYNTAX ERROR");
} catch (PDOException $e) {
if ($e->getCode() == '23000')
echo "Syntax Error: ".$e->getMessage();
}取自返回代码列表
SQL-92标准定义了一组SQLSTATE返回代码。SQLSTATE定义为一个五个字符的字符串,其中最左边的两个字符定义错误类,其余三个字符定义错误子类。一些数据库供应商可能会扩展这些返回代码;从数字5到9开始的类和字母i到Z都是为特定于实现的扩展保留的。可以通过
getSQLState()的SQLException方法检索特定JDBC操作的SQLSTATE代码。
https://stackoverflow.com/questions/18526019
复制相似问题