Когда я исполняювыбора и вставки не выбирая
INSERT INTO `survey`
(`id`,`name`,`date_start`,`date_end`)
values
(:id,:name,NULL,DATE_ADD(NOW(), INTERVAL 1 MINUTE))
on duplicate key UPDATE `name`=:name;
SELECT coalesce(:id,LAST_INSERT_ID()) as 'id'
он вставляет новые данные тонкие, но не выбирает идентификатор (который необходим в дальнейшем в моем PHP кода)
Я пытался this suggestion
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
но SQL кидает ошибки (из-за дублирования параметров)
SELECT ASCII(substr(`perm` FROM floor(:i/8)+1))&(1<<(:i%8))>0 as perm FROM `user` WHERE `id`=:id
Я в проигрышной ситуации, переписывая весь свой код SQL, чтобы не иметь повторяющихся параметров, было бы очень грязным, делая отдельный выбор сразу после вставки, возможно, не вернет идентификатор, который я хочу. Любые предложения были бы замечательными.
Этот ответ на самом деле выглядит так, как будто мой код будет легче читать, спасибо за это – Isaac
@ Исаак действительно, очиститель для обертывания запросов в хранимую процедуру, он также дает вам право изменять его, не касаясь кода PDO – meda