PHP MySQL Database

PHP + MySQL визначення Id останнього запису до таблиць Бази Даних

Матеріал представлений на сторінці є моїм перекладом ресурсу w3schools.com/php/php_ref_mysqli.asp

PHP MySQL Database

Якщо ми виконуємо запис INSERT чи оновлення UPDATE запису в таблиці з полем AUTO_INCREMENT, то ми відразу можемо отримати ID останнього внесеного/оновленого запису.

таблиця "MyGuests", в якій колонка "id" має атрибут AUTO_INCREMENT
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

Слідуючий приклад подібний до прикладу з попередньої сторінки ( PHP + MySQL запис даних до таблиць Бази Даних ), за виключенням того, що ми добавили ще один рядок коду, щоб отримати ID останнього запису. Також ми виводимо ID останнього запису.


MySQLi об'єктно-орієнтований стиль кодування

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Створюємо з'єднання
$conn = new mysqli($servername, $username, $password, $dbname);

// Перевіряємо з'єднання
if ($conn->connect_error) {
die("Помилка з'єднання: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
$last_id = $conn->insert_id;
echo "Новий запис успішно створений. ID останнього запису =". $last_id;
} else {
echo "Помилка: " . $sql . "
" . $conn->error;
}

$conn->close();
?>


MySQLi процедурний стиль кодування

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Створюємо з'єднання
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Перевіряємо з'єднання
if (!$conn) {
die("Помилка з'єднання: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo "Новий запис успішно створений. ID останнього запису = ". $last_id;
} else {
echo "Помилка: " . $sql . " " . mysqli_error($conn);
}

mysqli_close($conn);
?>


PDO стиль кодування

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
       $conn = new PDO("mysql:host=$servername; dbname=myDB", $username, $password);

       // встановлення PDO на випадок помилки з'єднання ( exception )
       $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $sql = "INSERT INTO MyGuests (firstname, lastname, email)
       VALUES ('John', 'Doe', 'john@example.com')";

       // використовуємо exec() тому, що відсутня результуюча вибірка даних
       $conn->exec($sql);
       $last_id = $conn->lastInsertId();
       echo "Новий запис успішно створений. ID останнього запису = ". $last_id;
       }

catch(PDOException $e)
       {
       echo $sql . " " . $e->getMessage();        }

$conn = null;
?>