Я использую PDO и хранимые процедуры с MySQL (InnoDB), и по какой-то причине данные не вставляются - вроде.
Когда я просматриваю свойства таблицы, Auto_increment увеличивается с каждымраз я запускаю его и он проходит без ошибок.В конце я выбираю переменные, которые передаю, и все хорошо.
Однако, даже с таблицей «приращения», данных там нет.Если я выберу то, что говорит auto_increment ID, я ничего не получу.Если я выберу * и закажу desc, опять же, он не покажет последнюю версию.
Есть идеи, что может быть причиной этого?
Спасибо!
Вот сохраненный процесс:
DELIMITER $$
USE `DB`$$
DROP PROCEDURE IF EXISTS `addVal`$$
CREATE DEFINER=`data`@`%` PROCEDURE `addVal`(
v_val_accountid INT,
v_val_groupid INT,
v_val_validationtypeid INT,
v_val_validationstatusid INT,
v_val_key VARCHAR(255),
v_val_expirationdate DATETIME
)
MAIN:BEGIN
INSERT `Validation` (
Val_AccountId,
Val_GroupId,
Val_ValidationTypeId,
Val_ValidationStatusId,
Val_Key,
Val_ExpirationDate
) VALUES (
v_val_accountid,
v_val_groupid,
v_val_validationtypeid,
v_val_validationstatusid,
v_val_key,
v_val_expirationdate
);
END$$
DELIMITER;
Вот подготовленное заявление PDO:
$key = '123456789';
$group_id = 0;
$type_id = 2;
$status_id = 1;
$date = 'DATE_ADD(NOW(), INTERVAL 1 DAY)';
$stmt = $this->db->prepare("CALL addVal(:account_id, :group_id, :type_id, :status_id, :key, :date)");
$stmt->bindParam(':account_id', $account_id, PDO::PARAM_INT);
$stmt->bindParam(':group_id', $group_id, PDO::PARAM_INT);
$stmt->bindParam(':type_id', $type_id, PDO::PARAM_INT);
$stmt->bindParam(':status_id', $status_id, PDO::PARAM_INT);
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
$stmt->bindParam(':date', $date, PDO::PARAM_STR);