PDOStatement :: mengeksekusi
PDOStatement :: mengeksekusi - mengeksekusi pernyataan siap (PHP 5> = 5.1.0, PECL PDO> = 0.1.0)
penjelasan
tatabahasa
bool PDOStatement::execute ([ array $input_parameters ] )
Pelaksanaan pernyataan siap. Jika laporan yang berisi parameter penanda disiapkan, Anda harus memilih salah satu dari praktek-praktek berikut:
Sebut PDOStatement :: bindParam () untuk mengikat variabel PHP dengan spidol parameter: jika ada, untuk melewati nilai input dan variabel terkait spidol parameter terikat untuk mendapatkan nilai output
Atau hanya sebagai array masukan nilai parameter yang lewat
parameter
input_parameters
Sejumlah elemen dan parameter dari pernyataan SQL yang akan dieksekusi sebanyak binding larik. Semua nilai-nilai diperlakukan sebagai PDO :: PARAM_STR.
Anda tidak dapat mengikat beberapa nilai untuk satu argumen, misalnya, Anda tidak dapat mengikat dua nilai ke IN () klausa dalam parameter bernama tunggal.
Nilai terikat tidak bisa melebihi jumlah yang ditentukan. Jika ada lebih dari PDO :: mempersiapkan () dan lebih nama kunci yang ditentukan dalam input_parameters SQL preprocessing, maka pernyataan ini akan gagal dengan kesalahan.
Kembali Nilai
kembali sukses BENAR, atau pada kegagalan kembali FALSE.
contoh
Mengeksekusi disiapkan variabel mengikat pernyataan
<?php /* 通过绑定 PHP 变量执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute(); ?>
Menggunakan array yang berisi nilai insert dijalankan sebagai pernyataan yang sudah disiapkan (parameter bernama)
<?php /* 通过传递一个含有插入值的数组执行一条预处理语句 */ $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)); ?>
Menggunakan array yang berisi nilai insert dijalankan sebagai pernyataan yang sudah disiapkan (penampung)
<?php /* 通过传递一个插入值的数组执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->execute(array($calories, $colour)); ?>
Pelaksanaan tanda tanya tempat pada pernyataan siap
<?php /* 通过绑定 PHP 变量执行一条预处理语句 */ $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(); ?>
Menggunakan array untuk mengeksekusi pernyataan disiapkan mengandung klausa IN
<?php /* 使用一个数组的值执行一条含有 IN 子句的预处理语句 */ $params = array(1, 21, 63, 171); /* 创建一个填充了和params相同数量占位符的字符串 */ $place_holders = implode(',', array_fill(0, count($params), '?')); /* 对于 $params 数组中的每个值,要预处理的语句包含足够的未命名占位符 。 语句被执行时, $params 数组中的值被绑定到预处理语句中的占位符。 这和使用 PDOStatement::bindParam() 不一样,因为它需要一个引用变量。 PDOStatement::execute() 仅作为通过值绑定的替代。 */ $sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)"); $sth->execute($params); ?>