变量似乎未初始化

时间:2017-08-04 19:02:53

标签: php mysql pdo

我从PHP调用存储过程,它应该给我一个日期。

class Bar {
  constructor({a, b}: {a?: number, b?: number}) {}
}

new Bar({b: 1})

我一直收到一个错误,即变量未初始化。

2 个答案:

答案 0 :(得分:1)

这里要小心。 bindParam仅用 作为输入参数。返回值使用不同的方法处理。你应该这样做:

    $stmt = $dbh->prepare("CALL date_sp(:employee_id)");
    $stmt->bindParam('employee_id', $employee_id, PDO::PARAM_STR, 4000); 
    // call the stored procedure
    $stmt->execute();

每当编写此类代码时,请务必仔细检查API参考。通常有一些微妙的事情你必须完全正确,否则什么都不会起作用。

如果要绑定结果值,可以使用bindColumn,但通常更容易将其作为数组获取并直接处理。

答案 1 :(得分:0)

您实际上并不需要指定的放置持有人。使用 ?你只需要做以下几点。

global $dbh;
$stmt = $dbh->prepare("CALL date_sp(?)");
$stmt->bindParam(1, $employee_id, PDO::PARAM_STR, 4000); 
// call the stored procedure
$stmt->execute();

要实际获取结果,您可以执行以下操作:

$result = $stmt->fetch()