PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::executeBir hazır deyimi çalıştırır

Açıklama

public PDOStatement::execute(?array $girdiler = null): bool

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:

  • Bağımsız değişkenleri ve/veya değerleri soru imleri ile ilişkilendirmek için (sırasıyla) PDOStatement::bindParam() ve/veya PDOStatement::bindValue() yöntemi kullanılmalıdır. İlişkili değişkenler, değerlerini girdi olarak iletir ve varsa çıktı değerlerini
  • ya da aktarılan salt-girdi bağımsız değişken değerlerini bir dizi olarak alır.

Bağımsız Değişkenler

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.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

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.

Örnekler

Ö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);
?>

Notlar

Bilginize:

Bazı sürücüler sonraki deyimi çalıştırmadan önce göstericiyi kapatmayı gerektirir.

Ayrıca Bakınız