2

我有一个将 mysql-colums 与 PDO 数据类型相关联的数组:

$imp->datafields=array(
  "id"           => "PARAM_INT",
  "name"         => "PARAM_STR",
  "cookieLength" => "PARAM_INT"
);

我想使用 foreach() 绑定这些参数

foreach($imp->datafields AS $key => $value) {
   $stmt->bindParam(':$key', $program->$key, PDO::$value);
}

并得到这个错误:

PHP Fatal error:  Access to undeclared static property: PDO::$value

我怎么解决这个问题?

4

1 回答 1

5

只需更改您的数组定义以使用 PDO 常量,如下所示:

$imp->datafields=array(
  "id"           => PDO::PARAM_INT,
  "name"         => PDO::PARAM_STR,
  "cookieLength" => PDO::PARAM_INT
);

然后在你的 foreach 循环$value中像这样单独使用:

$stmt->bindParam(":$key", $program->$key, $value);
               //^     ^                  ^^^^^^

并且还使用双引号来解析变量!

如果您真的希望它只是constant()在这样的每次迭代中使用,您还可以做什么:

$stmt->bindParam(":$key", $program->$key, constant("PDO::$value"));
于 2015-04-30T10:59:11.747 回答