0
我已经2天以上,并无法弄清楚这种情况。MSSQL更新工作,但插入失败
我正在使用PHP 5.5 ans MSSQL,看来我不能在某个表中插入,而更新在此表上工作,并且相同的插入在另一个表上工作。
当然,我已检查我的用户在此表上是否有正确的权限。
下面的代码也许我是愚蠢的......
// Establish connection
try {
$pdo = new PDO(DSN, UID, PWD);
} catch (PDOException $e) {
die("Error! ".$e->getMessage());
}
$pdo->beginTransaction();
// Merge-like event
try {
$updateStmt->execute();
$rows = $updateStmt->rowCount();
if($rows == 0) {
$insertStmt->execute();
}
} catch (Exception $e) {
$pdo->rollBack();
die("Error! ".$e->getMessage());
} finally {
$insertHistoryStmt->execute();
$pdo->commit();
}
我所有的PDO语句对象是用合适的值校正。 我对INSERT没有错误,似乎从未在数据库上执行过。
请问你是否需要更多的代码来理解我不想把我的整个代码放在这里,并说“请做我的工作”。
感谢我真的很坚持:/
pdo默认为在失败时返回布尔值false。除非你明确地启用异常,否则它唯一会抛出的是初始连接尝试。因此你的try/catch没用,因为你在那里做的所有操作都不会抛出异常。 –
只需按照[此处](https://phpdelusions.net/pdo#errors)中的说明配置PDO,以使其引发异常。另外请注意,您应该重新抛出异常,而不是手动杀死scriipt。 –
谢谢。明天早上我会做,我不得不推送应用程序到今晚的生产。好,祝你有个愉快的夜晚 – Ben