آموزش استخراج ID آخرین رکورد وارد شده در جدول MySQL :
اگر بر روی جدولی که دارای یک فیلد با قابلیت افزایش خودکار (AUTO_INCREMENT) است، دستور ورود اطلاعات (INERST) یا ویرایش اطلاعات (UPDATE) را اجرا کنیم، می توان همان لحظه 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 )
کد مثال عملی زیر همانند مثال درس قبلی است (وارد کردن اطلاعات با دستورات INSERT INTO)، با این تفاوت که یک خط کد جدید را برای استخراج ID آخرین رکورد وارد شده، اضافه شده است. در پایان هم مقدار این ID را در خروجی چاپ کرده ایم :
کد مثال MySQLi شی گرا :
connect_error) { die("Connection failed: " . $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 "New record created successfully. Last inserted ID is: " . $last_id; } else { echo "Error: " . $sql . "
" . $conn->error; } $conn->close(); ?>
کد مثال MySQLi رویه ای :
" . mysqli_error($conn); } mysqli_close($conn); ?>
کد مثال PDO :
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"; // use exec() because no results are returned $conn->exec($sql); $last_id = $conn->lastInsertId(); echo "New record created successfully. Last inserted ID is: " . $last_id; } catch(PDOException $e) { echo $sql . "
" . $e->getMessage(); } $conn = null; ?>