的意思 ?在SQLite中标记

时间:2010-02-22 23:10:51

标签: php zend-framework sqlite

此SQL查询中的?字符是什么意思?

$res = $dbConn->fetchPairs('SELECT name FROM tree where parent = ?',$key);

4 个答案:

答案 0 :(得分:5)

这是一个查询parameter。该值在编译时是未知的 - 它在运行时通过使用变量$ key的内容确定。

还存在用于指定参数的其他符号:

 ?NNN    A question mark followed by a number NNN holds a spot for the NNN-th
         parameter. NNN must be between 1 and SQLITE_MAX_VARIABLE_NUMBER.
    ?    A question mark that is not followed by a number holds a spot for the
         next unused parameter.
:AAAA    A colon followed by an identifier name holds a spot for a named
         parameter with the name AAAA. Named parameters are also numbered. The
         number assigned is the next unused number. To avoid confusion, it is
         best to avoid mixing named and numbered parameters.
@AAAA    An "at" sign works exactly like a colon.
$AAAA    A dollar-sign followed by an identifier name also holds a spot for a
         named parameter with the name AAAA. The identifier name in this case
         can include one or more occurances of "::" and a suffix enclosed in
         "(...)" containing any text at all. This syntax is the form of a
         variable name in the Tcl programming language. The presence of this
         syntax results from the fact that SQLite is really a Tcl extension
         that has escaped into the wild.

答案 1 :(得分:3)

这是一个参数化查询。的?是存储在$ key中的实际值的占位符。

答案 2 :(得分:2)

通常用于所谓的。 stored procedures or prepared-statements

答案 3 :(得分:1)

我认为这是替换,就像在printf中他们使用%1,%2等;的?是$ key的替代品。