SQLite3Stmt::bindValue
パラメータの値を変数にバインドする
&reftitle.description;
public boolSQLite3Stmt::bindValue
stringintparam
mixedvalue
inttypeSQLITE3_TEXT
パラメータの値を変数にバインドします。
PHP 7.2.14 と 7.3.0 より前のバージョンでは、
ステートメントがいったん実行されると、
バインドされたパラメータの値を変えられるようにするために
SQLite3Stmt::reset を呼び出す必要がありました。
&reftitle.parameters;
param
バインドされるべき文中の値を識別する
string (名前付きパラメータの場合) または
(位置パラメータの場合) int。
名前付きパラメータがコロン (:) や
アットマーク (@)
ではじまっていない場合、コロンが自動的に名前の前に付加されます。
位置パラメータは 1 から始まります。
value
変数にバインドする値。
type
バインドする値のデータ型。
SQLITE3_INTEGER: 符号付き整数。
値の大きさに応じて 1, 2, 3, 4, 6, あるいは 8 バイトで格納されます。
SQLITE3_FLOAT: 浮動小数点数値。
8 バイトの IEEE 浮動小数点数値として格納されます。
SQLITE3_TEXT: テキスト文字列。
データベースのエンコーディング (UTF-8, UTF-16BE あるいは UTF-16-LE)
を用いて格納されます。
SQLITE3_BLOB: blob データ。
入力がそのままの形式で格納されます。
SQLITE3_NULL: NULL 値。
PHP 7.0.7 以降では、type が省略されると、
自動的に value の型から検出します:
bool
と int 型は SQLITE3_INTEGER として扱われ、
float は SQLITE3_FLOAT、
null は SQLITE3_NULL、
そして、これら以外は全て SQLITE3_TEXT として扱われます。
これより前のバージョンでは、type が省略されると、
デフォルトの型 SQLITE3_TEXT になっていました。
value が &null; の場合、
与えられた type に関わらず、
常に SQLITE3_NULL として扱われます。
&reftitle.returnvalues;
値を変数にバインドした場合に &true;、&return.falseforfailure;
&reftitle.changelog;
&Version;
&Description;
7.4.0
param が、新たに @param 記法をサポートしました。
&reftitle.examples;
SQLite3Stmt::bindValue の例
exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");
$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>
]]>
&example.outputs;
string(14) "This is a test"
}
]]>
&reftitle.seealso;
SQLite3Stmt::bindParam
SQLite3::prepare