INSERT ile kayıt ekleme
PDO ve prepared statement ile yeni kayıt eklemeyi öğrenirsin.
INSERT ile yeni kayıt ekleme
Yeni kayıt eklemek için SQL INSERT komutunu prepared statement ile çalıştırırsın. Önce prepare() sorguyu şablon olarak hazırlar; ? işaretleri parametre yeridir.
Sonra execute() parametreleri bir dizi ile geçip sorguyu çalıştırır. Bu yöntem SQL enjeksiyonuna karşı güvenlidir.
Yeni kaydın ID'sini almak için lastInsertId() yöntemini kullanırsın; bu, AUTOINCREMENT sütununun son değerini döndürür.
execute() parametreleri
Prepared statement'ta ? yer tutucuları sırayla parametre alır. execute() bir dizi geçirir; değerler yer tutucularla aynı sırada olmalıdır.
Örneğin INSERT INTO users (name, email) VALUES (?, ?) sorgusunda ilk ? name, ikinci ? email yerine geçer.
PDO değerleri güvenli biçimde bağlar; tırnak ve kaçış karakterleriyle uğraşmazsın.
Uygulama Yeni kullanıcı ekle ve ID yazdır
Aşağıdaki iskelette prepare, execute ve lastInsertId kullanarak 'Ayşe', 'ayse@example.com' değerleriyle yeni kayıt ekle ve yeni ID'yi yazdır.
Örnek çözümü göster
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)");
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute(['Ayşe', 'ayse@example.com']);
echo $pdo->lastInsertId() . "\n";
Kendini test et
-
Hangi yöntem yeni eklenen kaydın ID'sini döndürür?
- prepare()
- lastInsertId()
- fetchColumn()
- rowCount()
Cevabı göster
lastInsertId() — lastInsertId() yeni AUTOINCREMENT ID'yi döndürür.
-
Hazırlanan ifadeyi çalıştır
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->____(['Ayşe', 'ayse@example.com']);Cevabı göster
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->execute(['Ayşe', 'ayse@example.com']); -
PDO yöntemlerini rollerine eşle
- prepare()
- Sorguyu hazırlar
- execute()
- Sorguyu çalıştırır
- lastInsertId()
- Yeni ID'yi verir
- query()
- Doğrudan sorgu çalıştırır