(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::execute — Bir hazır deyimi çalıştırır
Bir hazır deyimi çalıştırır. Hazır deyim bağımsız değişken içeriyorsa şu ikisinden birini yapmalısınız:
girdiler
Çalıştırılacak SQL deyimiyle ilişkilendirilmiş bağımsız değişken sayısı kadar
değer içeren bir dizi. Tüm değerler PDO::PARAM_STR
olarak ele alınır.
Tek bir bağımsız değişkene birden fazla değer belirtilemez. Örneğin bir IN() yan tümcesindeki tek bir isimli bağımsız değişken iki değerle ilişkilendirilemez.
Belirtilenden daha fazla değeri ilişkilendirmek mümkün değildir;
girdiler
içinde
PDO::prepare() yönteminde belirtilen
deyimdekinden daha fazla anahtar mevcutsa, deyim başarısız olur ve
bir hata çıktılanır.
PDO::ATTR_ERRMODE
özniteliğine
PDO::ERRMODE_WARNING
atanırsa
E_WARNING
düzeyinde bir hata çıktılanır.
PDO::ATTR_ERRMODE
özniteliğine
PDO::ERRMODE_EXCEPTION
atanırsa
PDOException istisnası oluşur.
Örnek 1 - İlişkili değişken ve değerlerle bir hazır deyimin çalıştırılması
<?php
/* PHP değişken ve değerleriyle ilişkilendirilmiş bir hazır deyimi çalıştıralım */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam('calories', $calories, PDO::PARAM_INT);
/* isimler ":" ile öncelenebiliyor (seçimlik) */
$sth->bindParam(':colour', "%{$colour}%");
$sth->execute();
?>
Örnek 2 - İsimli değerler dizisi ile hazır bir deyimin çalıştırılması
<?php
/* Yerleştirilecek değerleri bir dizi olarak aktarmak suretiyle
bir hazır deyimi çalıştıralım */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array('calories' => $calories, 'colour' => $colour));
/* Dizi anahtarları da ":" ile öncelenebiliyor (seçimlik) */
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>
Örnek 3 - - Konumlu değerler dizisi ile bir hazır deyimin çalıştırılması
<?php
/* Yerleştirilecek değerleri bir dizi olarak aktarmak suretiyle
bir hazır deyimi çalıştıralım */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>
Örnek 4 Soru imli bir hazır deyimin çalıştırılması
<?php
/* PHP değişkenleriyle ilişkilendirilmiş bir hazır deyimi çalıştıralım */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
Örnek 5 - IN yan tümcesi için dizi kullanarak bir hazır deyimin çalıştırılması
<?php
/* IN yan tümcesi için dizi kullanarak hazır deyimi çalıştır */
$params = array(1, 21, 63, 171);
/* Bağımsız değişken sayısı kadar yer tutucu içeren bir dizge oluştur */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
Bu, $params dizimizdeki her değer için yeterli adsız yer tutucuyla
ifadeyi hazırlar. $params dizisinin değerleri, deyim yürütüldüğünde
hazırlanan deyimdeki yer tutucularla ilişkilendirilir. Bu, değişkene
bir başvuru gerektirdiğinden, PDOStatement::bindParam() kullanımıyla
aynı değildir. PDOStatement::execute() ise yalnızca değere göre
ilişkilendirme yapar.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>
Bilginize:
Bazı sürücüler sonraki deyimi çalıştırmadan önce göstericiyi kapatmayı gerektirir.