多个值的 ReadBeanPHP 参数绑定

ReadBeanPHP parameter bindings for several values

阅读 http://www.redbeanphp.com/querying 上的文档,其中提供了一些使用参数绑定的示例。但是我有一些使用它的问题:

问题一:

这是原来的例子

R::getAll( 'SELECT * FROM page WHERE title = :title',
    [':title' => 'home']
);

但是,如果我想在 SQL 语句中替换多个搜索值(例如添加年份)怎么办?这样写对吗:

R::getAll( 'SELECT * FROM page WHERE title = :title AND year > :year',
    [':title' => 'home', ':year' => 2012]
);

问题二:

这个例子使用问号?替换

R::getRow( 'SELECT * FROM page WHERE title LIKE ? LIMIT 1',
    [ '%Jazz%' ]
);

如果我要加上年份,是不是应该这样写,在查询中加第二个问号?

R::getRow( 'SELECT * FROM page WHERE title LIKE ? AND year > ? LIMIT 1',
    [ '%Jazz%', 2012 ]
);

问题三:

到目前为止,文档仅给出了 getAll() 和 getRow() 函数的示例。它也适用于 R::exec() 吗?例如:

R::exec( 'UPDATE page SET title="test" WHERE id = ? AND year > ?',
    [ 101, 2012 ]
);

R::exec( 'UPDATE page SET title="test" WHERE id = :id AND year > :year',
    [ ':id' => 101, ':year' => 2012 ]
);

谢谢!

你的答案全部正确。

如果您查看 rb.php 文件,您可以找到 Facade class 及其功能:

public static function exec( $sql, $bindings = array() )

public static function getAll( $sql, $bindings = array() ) 

第二个参数是绑定数组。