Как получить самый последний элемент по id в таблице MySQL, используя PHP - PullRequest
0 голосов
/ 08 октября 2019

enter image description here Я попробовал приведенный ниже код, чтобы получить последний вставленный идентификатор, чтобы вставить его в другую таблицу, но каким-то образом использование $this->$conn->lastInsertId(), похоже, не работает.

У кого-нибудь есть идеи?

if (!( $stmt = $this->conn->prepare("INSERT INTO company(company_name,address_line1,address_line2,postal_code,country,contact_no,email,wifi_name,website_url,contact_person,parent_id,created_by,created_date,updated_date,deleted, wifi_name2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"))) {
        echo "Prepare failed: (" . $this->conn->errno . ")" . $this->conn->error;
    } else {
        if (!$stmt->bind_param('ssssssssssiissis', $name, $address_line1, $address_line2, $postal_code, $country, $phone, $email, $wifi, $url, $contact, $p_id, $staff_id, $today, $updated, $deleted, $wifi2)) {
            echo "Binding parameters failed: (" . $stmt->errno . ")" . $stmt->error;
        } else {
            if (!$stmt->execute()) {
                echo "Execute failed: (" . $stmt->errno . ")" . $stmt->error;
                return FALSE;
            } else {
                echo $this->$conn->lastInsertId();
                $stmt->close();
                return TRUE;
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

В моем случае, который, я полагаю, не использует метод доступа к pdo, это работает:

$stmt->insert_id;
0 голосов
/ 08 октября 2019

Код кажется правильным.

Возможно, у вас нет поля ID AUTOIMCREMENT PRIMARY в этой таблице.

lastInsertId() может вернуть новый идентификатор, только если полеAUTOIMCREMENT PRIMARY.

Попробуйте также сделать запрос на это, чтобы увидеть, если вы получите последний вставленный идентификатор:

$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastInsertId = $stmt->fetchColumn();

Если вышеприведенное не ваше дело, вы должны проанализировать каждый шаг, чтобыобнаружите проблему:

  • запустите сценарий, чтобы увидеть, что он печатает
  • посмотреть в базе данных, была ли вставлена ​​новая строка и что она содержит, в частности поле id
  • попробуйте сделать вставку непосредственно в phpmyadmin, а затем выполните `SELECT LAST_INSERT_ID () ', чтобы проверить, работает ли запрос вручную
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...