CodeBlanks Logo Icon CodeBlanks

INSERT ile kayıt ekleme

PHP kursu · İleri seviye · Ders 15/92

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

  1. 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.

  2. 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']);
  3. 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

İleri seviye bölümündeki tüm dersler