php-PDO-前処理バインドパラメータの詳細
989 ワード
//parameter = array(':username'=>'jack', ':money'=>'123.00')
foreach ($parameters as $key => $value)
{
$stmt->bindParam($key, $value); // ,$stmt
}
パラメータをループバインドするときに$valueを直接使用して、異なる変数名バインドを適用することはできません.同じ変数名を使用すると、execute()を呼び出すと、バインドされた値が最後のループ時に$valueに割り当てられた値になります.
上記のコードは次のように書き換えることができます.
//parameter = array(':username'=>'jack', ':money'=>'123.00')
foreach ($parameters as $key => $value)
{
//$stmt->bindParam($key, $value); // ,$stmt
$stmt->bindParam($key, $parameters[$key]);
}
公式マニュアルを見てください.
public bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
の2番目のパラメータmixed&$variableは参照でパラメータを渡すので、変数のみをパラメータとして提供し、直接数値を提供することはできません.