KKUT Docs

Hazırlanmış Sorgular ve Parametre Bağlama

Ham SQL değerlerini sorgu metnine eklemeden sürücünün prepared statement mekanizmasına bağlayın.

KUT'un DB::query() ve DB::execQuery() yöntemlerindeki ikinci dizi parametresi gerçek prepared statement bağlamasıdır. Değerler SQL metnine birleştirilmez; etkin veritabanı sürücüsüne ayrı gönderilir.

Konumsal parametreler

$account = DB::query(
    'SELECT * FROM accounts WHERE email = ? AND status = ?',
    [$email, 'active']
)->row();

Aynı sözleşme zincirli secure() kullanımıyla korunur:

$account = DB::secure([$email, 'active'])
    ->query('SELECT * FROM accounts WHERE email = ? AND status = ?')
    ->row();

Adlandırılmış parametreler

$invoice = DB::query(
    'SELECT * FROM invoices WHERE id = :id AND account_id = :account',
    [':id' => $invoiceId, ':account' => $accountId]
)->row();

Adlar : ile başlamalı ve harf, sayı veya alt çizgi içermelidir. Aynı ad SQL içinde birden çok kez kullanılırsa değer sürücünün gerektirdiği her konuma ayrı bağlanır. Konumsal parametre sayısı ile ? sayısı eşleşmezse sorgu çalıştırılmaz.

Yazma sorguları

$changed = DB::execQuery(
    'UPDATE accounts SET last_ip = ? WHERE id = ?',
    [$ip, $accountId]
);

Query Builder

where(), insert() ve update() gibi Query Builder yöntemleri kendi değer sözleşmesini korur. Dinamik tablo, kolon, sıralama yönü veya SQL anahtar kelimesi parametre olarak bağlanamaz; bunlar uygulama allowlist'inden seçilmelidir.

Çoklu sorgu sınırı

multiQuery() parametre kabul etmez. Birden fazla SQL deyimini kullanıcı verisiyle birlikte göndermeyin. Her deyimi ayrı prepared query()/execQuery() çağrısı olarak, gerekiyorsa transaction içinde çalıştırın.

Desteklenen sürücüler ve doğrulama

MySQLi, PostgreSQL, SQLite, SQL Server, Oracle ve ODBC sürücüleri ortak bağlama sözleşmesini kendi native API'lerine çevirir. Seçili bağlantıda salt-okuma doğrulaması:

php buyruk --project=Blog database:prepared-check

Komut tırnak, ters eğik çizgi ve Unicode içeren bir değeri SELECT ? ile bağlar; veri aynı dönmezse sıfır olmayan çıkış kodu üretir.

Log ve önbellek

Sorgu günlüğü SQL şablonunu kaydeder, bağlı değerleri yazmaz. Sorgu önbelleği anahtarı SQL ile birlikte parametrelerin özetini içerir; farklı parametreler aynı cache sonucunu paylaşmaz.

KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.