PDO::prepare

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

PDO::prepare ׼��Ҫִ�е���䣬������������

˵��

public PDO::prepare ( string $statement [, array $driver_options = array() ] ) : PDOStatement

Ϊ PDOStatement::execute() ����׼����ִ�е� SQL ��䡣 SQL �����԰��������������ռλ��ǣ���ʽ��������:name�����ʺţ�?������ʽ������ִ��ʱ������ʵ����ȡ���� ��ͬһ�� SQL ����������ʽ���ʺ���ʽ����ͬʱʹ�ã�ֻ��ѡ������һ�ֲ�����ʽ�� ���ò�����ʽ���û���������ݣ���Ҫֱ���ַ���ƴ�ӵ���ѯ�

���� PDOStatement::execute() ʱ��ÿһ��ֵ�IJ���ռλ��ǣ����Ʊ���Ψһ�� ��������ģ�⣨emulation��ģʽ��ͬһ��������޷�ʹ�������IJ�����

Note:

����ռλ������������չʾ���������ݡ������������һ���֣������ǹؼ��ʣ������DZ�ʶ������������������ķ�Χ�� ����˵�������ܰѶ��ֵ�󵽵��������Ȼ���� SQL ������� IN() ��ѯ��

����ò�ͬ������ͨ�� PDO::prepare() �� PDOStatement::execute() ��ε���ͬһ�� SQL ��䣬������Ӧ�õ����� —— ���������ÿͻ���/�����������ѯ��Ԫ��Ϣ��������ֹ SQL ע�빥��������Ҫ�ֶ������������š�

�������������֧�ֲ�����PDO ��ģ��������Ĺ��ܣ������������֧������һ�ַ�������������ʺŲ������֣���Ҳ���Զ���д������һ�ַ��

����

statement

�����Ƕ�Ŀ�����ݿ��������Ч�� SQL ���ģ�塣

driver_options

�������һ������ key=>value ��ֵ�ԣ�Ϊ���ص� PDOStatement �����������ԡ� �����÷��ǣ����� PDO::ATTR_CURSOR Ϊ PDO::CURSOR_SCROLL�����õ��ɹ����Ĺ�ꡣ ijЩ��������������ѡ��� 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();
?>

�μ�

  • PDO::exec() - ִ��һ�� SQL ��䣬��������Ӱ�������
  • PDO::query() - ִ�� SQL ��䣬�� PDOStatement ������ʽ���ؽ����
  • PDOStatement::execute() - ִ��һ��Ԥ�������