Я нахожусь с ним с 2 дней и не могу понять это.MSSQL UPDATE работает, но INSERT не работает
Я работаю с 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 бесполезен, потому что ни одна из операций, которые вы делаете там, не создавала бы исключения в первую очередь. –
Просто настройте PDO, как описано [здесь] (https://phpdelusions.net/pdo#errors), чтобы заставить его генерировать исключения. Также обратите внимание, что вы должны повторно выбросить исключение вместо того, чтобы убить scriipt вручную. –
Спасибо. Я сделаю это завтра утром, я должен нажать приложение к производству сегодня вечером. Приятного вечера – Ben