Sqlite не возвращает правильный первичный ключ в php

Я создаю базу данных фильмов для школьного проекта, и я пытаюсь добавить 2 значения к отношениям «многие ко многим» в sqlite. Однако по какой-то причине второй запрос не возвращает первичный ключ только что добавленного фильма, а всегда 1. Я протестировал запросы с помощью sql, а затем они вернули значения, как обычно, поэтому я не думаю, что что-то не так с sql запросы.

public function add_movie($title, $genre, $actor, $director, $agecategory, $warning){   
        $query1 = $this->db->prepare(
            "INSERT INTO movie
            (title, agecategorynumber) VALUES (?,?);"
        );
        $query1->bindValue(1, $title);
        $query1->bindValue(2, $agecategory);

        try{
            $query1->execute();         
        }catch(PDOException $e){
            die($e->getMessage());
        }

        $query2 = $this->db->prepare(
            "SELECT movie.movienumber
            FROM movie
            WHERE movie.title LIKE ?"
        );
        $query2->bindValue(1, $title);

        try{
            $titlenumber = $query2->execute();
        }catch(PDOException $e){
            die($e->getMessage());
        }   

        $query3 = $this->db->prepare(
            "INSERT INTO movieactor
            (movienumber, actornumber) VALUES (?,?);"
        );
        $query3->bindValue(1,$titlenumber);
        $query3->bindValue(2,$actor);

        try{
            $query3->execute();
        }catch(PDOException $e){
            die($e->getMessage());
        }   
    }

Если вы хотите, чтобы идентификатор автоматически увеличивался для последней вставленной записи, не пытайтесь вздыхать, как показано выше, а сделайте это способом верно. stackoverflow.com/questions/216790/…

CBroe 31.05.2018 12:19

@CBroe ваша ссылка предназначена для Java / JDBC, а этот вопрос - для PHP.

timclutton 01.06.2018 11:40

@timclutton в одном из ответов упоминается last_insert_rowid(). Дубликат не должен означать для меня «копировать и вставить готовый ответ», ИМХО, можно ожидать разумных усилий по поиску соответствующей информации. (В частности, в таком случае только с двумя, довольно короткими и лаконичными ответами. Я бы согласился с вашей точкой зрения, если бы это был один из вопросов, на которые были даны десятки ответов, и все они уже говорили о разных вещах.)

CBroe 01.06.2018 11:47

@CBroe Согласен. В данном случае это немного вводит в заблуждение, поскольку PDO предоставляет для этого собственный метод: PDO :: lastInsertId.

timclutton 01.06.2018 11:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
30
0

Другие вопросы по теме