我从PHP调用存储过程,它应该给我一个日期。
class Bar {
constructor({a, b}: {a?: number, b?: number}) {}
}
new Bar({b: 1})
我一直收到一个错误,即变量未初始化。
答案 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()