PDOのPDOStatement::bindParamは型を自動的に判別してくれないとのこと。 というわけで型判別してバインドする何か。 $stmt = $pdo->prepare($sql); foreach($binds as $key => $bind){ $type = PDO::PARAM_STR; switch(true){ case is_bool($bind) : $type = PDO::PARAM_BOOL; break; case is_null($bind) : $type = PDO::PARAM_NULL; break; case is_int($bind) : $type = PDO::PARAM_INT; break; case is_float($bind) : case is_numeric($bind) : case is_string($bind)