PDO Mysql получить ид если есть уже запись

217
22 мая 2019, 19:50

Есть запрос в базу

   $sql = "INSERT INTO type_filters (name)
SELECT * FROM (SELECT :name) AS tmp
WHERE NOT EXISTS (
    SELECT name FROM type_filters WHERE name = :name
) LIMIT 1";


$db = new \Opti\DataBase();
        // Connect
        $db = $db->connect();
        $stmt = $db->prepare($sql);
        $stmt->bindParam(':name', $name);
      $result =  $stmt->execute();
        echo $result; // всегда 1

Как мне всегда получать ид не зависимо от того есть ли запись или она новая.

Answer 1

В переменную $result прилетает результат запроса, либо он выполнен - 1, если что-то пошло не так то - 0

Получить id можно так $id = $db->lastInsertId();

здесь похожий вопрос, можете почитать https://stackoverflow.com/questions/10680943/pdo-get-the-last-id-inserted

READ ALSO
Не выводит значение mysql_insert_id()

Не выводит значение mysql_insert_id()

В базу добавляется строка с AUTO INCREMENT, нужно получить последний IDС функцией mysqli_insert_id() мне выводит пустоту, никаких значений

170
Как данные введенные на форму отправить на базу данных

Как данные введенные на форму отправить на базу данных

Что сделал неправильно? И как сделать, чтобы id, которые будут совпадать не будет добавляться?

211
Как читать и вывести информацию с json?

Как читать и вывести информацию с json?

Как вывести сгруппированные данные из json, только из

192
composer - как создать такую зависимость

composer - как создать такую зависимость

Написать свой класс логирования на основе класса psr/log из packagistКак теперь могу сделать, чтобы мог свой класс подключать к своим другим проектам...

199