(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::prepare — 准锟斤拷要执锟叫碉拷锟斤拷洌拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�
为 PDOStatement::execute() 锟斤拷锟斤拷准锟斤拷锟斤拷执锟叫碉拷 SQL 锟斤拷洹� SQL 锟斤拷锟斤拷锟皆帮拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟秸嘉伙拷锟角o拷锟斤拷式锟斤拷锟斤拷锟斤拷锟斤拷:name锟斤拷锟斤拷锟绞号o拷?锟斤拷锟斤拷锟斤拷式锟斤拷锟斤拷锟斤拷执锟斤拷时锟斤拷锟斤拷锟斤拷实锟斤拷锟斤拷取锟斤拷锟斤拷 锟斤拷同一锟斤拷 SQL 锟斤拷锟斤拷铮拷锟斤拷锟斤拷锟绞斤拷锟斤拷屎锟斤拷锟绞斤拷锟斤拷锟酵笔癸拷茫锟街伙拷锟窖★拷锟斤拷锟斤拷锟揭伙拷植锟斤拷锟斤拷锟绞斤拷锟� 锟斤拷锟矫诧拷锟斤拷锟斤拷式锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷锟斤拷荩锟斤拷锟揭憋拷锟斤拷址锟斤拷锟狡达拷拥锟斤拷锟窖拷铩�
锟斤拷锟斤拷 PDOStatement::execute() 时锟斤拷每一锟斤拷值锟侥诧拷锟斤拷占位锟斤拷牵锟斤拷锟斤拷票锟斤拷锟轿ㄒ伙拷锟� 锟斤拷锟斤拷锟斤拷锟斤拷模锟解(emulation锟斤拷模式锟斤拷同一锟斤拷锟斤拷锟斤拷锟斤拷薹锟绞癸拷锟斤拷锟斤拷锟斤拷牟锟斤拷锟斤拷锟�
Note:
锟斤拷锟斤拷占位锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷展示锟斤拷锟斤拷锟斤拷锟斤拷锟捷★拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷郑锟斤拷锟斤拷锟斤拷枪丶锟斤拷剩锟斤拷锟斤拷锟斤拷潜锟绞讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥凤拷围锟斤拷 锟斤拷锟斤拷说锟斤拷锟斤拷锟斤拷锟杰把讹拷锟街碉拷蟮降锟斤拷锟斤拷锟斤拷锟斤拷铮伙拷锟斤拷锟� SQL 锟斤拷锟斤拷锟斤拷锟� IN() 锟斤拷询锟斤拷
锟斤拷锟斤拷貌锟酵拷锟斤拷锟斤拷锟酵拷锟� PDO::prepare() 锟斤拷 PDOStatement::execute() 锟斤拷蔚锟斤拷锟酵伙拷锟� SQL 锟斤拷洌拷锟斤拷锟斤拷锟接︼拷玫锟斤拷锟斤拷锟� —— 锟斤拷锟斤拷锟斤拷锟斤拷锟矫客伙拷锟斤拷/锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟窖拷锟皆拷锟较拷锟斤拷锟斤拷锟斤拷锟街� SQL 注锟诫攻锟斤拷锟斤拷锟斤拷锟斤拷要锟街讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟脚★拷
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟街э拷植锟斤拷锟斤拷锟絇DO 锟斤拷模锟斤拷锟斤拷锟斤拷锟斤拷墓锟斤拷埽锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷支锟斤拷锟斤拷锟斤拷一锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷屎挪锟斤拷锟斤拷锟斤拷郑锟斤拷锟揭诧拷锟斤拷远锟斤拷锟叫达拷锟斤拷锟斤拷锟揭伙拷址锟斤拷
statement
锟斤拷锟斤拷锟角讹拷目锟斤拷锟斤拷锟捷匡拷锟斤拷锟斤拷锟斤拷锟叫э拷锟� SQL 锟斤拷锟侥o拷濉�
driver_options
锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷锟� key=>value 锟斤拷值锟皆o拷为锟斤拷锟截碉拷 PDOStatement 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆★拷 锟斤拷锟斤拷锟矫凤拷锟角o拷锟斤拷锟斤拷 PDO::ATTR_CURSOR 为 PDO::CURSOR_SCROLL锟斤拷锟斤拷锟矫碉拷锟缴癸拷锟斤拷锟侥癸拷辍� 某些锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷选锟筋,锟斤拷 prepare 时锟斤拷锟斤拷锟矫★拷
锟斤拷锟斤拷锟斤拷菘锟斤拷锟斤拷锟斤拷锟斤拷锟阶硷拷锟斤拷锟斤拷锟戒,
PDO::prepare() 锟斤拷锟斤拷
PDOStatement 锟斤拷锟斤拷
锟斤拷锟斤拷锟斤拷菘锟斤拷锟斤拷锟斤拷锟睫凤拷准锟斤拷锟斤拷洌�
PDO::prepare() 锟斤拷锟斤拷 FALSE
锟斤拷锟阶筹拷
PDOException (取锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷)锟斤拷
Note:
模锟斤拷模式锟铰碉拷 prepare 锟斤拷洳伙拷锟斤拷锟斤拷锟捷匡拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� PDO::prepare() 锟斤拷锟斤拷锟斤拷锟斤拷洹�
Example #1 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷式准锟斤拷 SQL 锟斤拷锟斤拷锟斤拷
<?php
/* 锟斤拷锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷锟街达拷锟阶硷拷锟斤拷玫锟斤拷锟斤拷 */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>
Example #2 锟斤拷锟绞猴拷锟斤拷式准锟斤拷 SQL 锟斤拷锟斤拷锟斤拷
<?php
/* 锟斤拷锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷锟街达拷锟阶硷拷锟斤拷玫锟斤拷锟斤拷 */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>