Задать вопрос
inilim2
@inilim2
Intern PHP

Как получить наличие ошибок всех запросов в одном execute()?

$PDO = ConnectDB();
$stm = $PDO->prepare(
    'INSERT INTO table
    (name)
    VALUES
    (:name1)
    ON DUPLICATE KEY UPDATE
    other = :name1;
    INSERT INTO table
    (name)
    VALUES
    (:name2)
    ON DUPLICATE KEY UPDATE
    other = :name2;'
);
$stm->bindParam(':name1', 'value1', PDO::PARAM_STR);
$stm->bindParam(':name2', 'value2', PDO::PARAM_STR);
$stm->execute();
$stm->errorInfo()


Проблема в том, что я отправляю два инсерта, к примеру, первый инрест отработал без ошибок, а второй с ошибкой, то метод errorInfo() отдаст статус только об первом запросе который отработал хорошо. Как получать сообщения от всех запросов?
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если принять, что запросы разные, а не как здесь, то не маяться дурью, а выполнить два запроса.
$PDO = ConnectDB();
$PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stm = $PDO->prepare(
    'INSERT INTO table
    (name)
    VALUES
    (:name1)
    ON DUPLICATE KEY UPDATE
    other = :name1'
);
$stm->bindParam(':name1', 'value1', PDO::PARAM_STR);
$stm = $PDO->prepare(
    'INSERT INTO table
    (name)
    VALUES
    (:name2)
    ON DUPLICATE KEY UPDATE
    other = :name2;'
);
$stm->bindParam(':name2', 'value2', PDO::PARAM_STR);
$stm->execute();

если вставка одинаковых полей в одну таблицу, то очевидно мультиинсерт
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы