我在MySQL中测试外键.目标是防止将id输入table2,这在table1中不存在.我希望使用外键只会导致一行没有插入,但它似乎抛出了这个巨大的错误.我如何在PHP中处理这个?有没有办法让MysqL根本不插入行并返回没有返回的行?
Fatal error: Uncaught exception ‘PDOException’ with message ‘sqlSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
wp-db
.borrowed
,CONSTRAINTborrowed_ibfk_1
FOREIGN KEY (employeeid
) REFERENCESemployee
(id
) ON DELETE CASCADE ON UPDATE CASCADE)’ in C:\web\apache\htdocs\dev\foreign.PHP:10Stack trace:
#0 C:\web\apache\htdocs\dev\foreign.PHP(10): PDOStatement->execute()
#1 {main} thrown in C:\web\apache\htdocs\dev\foreign.PHP on line 10
try {
$pdo->exec ("QUERY WITH Syntax ERROR");
} catch (PDOException $e) {
if ($e->getCode() == '23000')
echo "Syntax Error: ".$e->getMessage();
}
The sql-92 standard defines a set of sqlSTATE return codes. sqlSTATE
is defined as a five-character string,where the leftmost two
characters define the error class,and the remaining three characters
define the error subclass. Some database vendors may extend these
return codes; classes beginning with the numbers 5 through 9 and
letters I through Z are reserved for such implementation-specific
extensions. The sqlSTATE code for a particular JDBC action can be
retrieved via thegetsqlState()
method ofsqlException