Значение ? пометить в SQLite - PullRequest
       29

Значение ? пометить в SQLite

3 голосов
/ 23 февраля 2010

Что означает символ ? в этом запросе SQL?

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

Ответы [ 4 ]

5 голосов
/ 23 февраля 2010

Это запрос параметр . Значение не известно во время компиляции - оно определяется во время выполнения с использованием содержимого переменной $ 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.
3 голосов
/ 23 февраля 2010

Это параметризованный запрос. ? является заполнителем для фактического значения, хранящегося в ключе $.

2 голосов
/ 23 февраля 2010

Обычно используется в том, что называется. хранимые процедуры или подготовленные заявления

1 голос
/ 23 февраля 2010

Я думаю, что это замена, как в printf они используют% 1,% 2 и т. Д .; ? является заменой для $ key.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...