【发布时间】:2021-07-19 01:07:53
【问题描述】:
我有一个表格,用户填写以将金额添加到他们的帐户,在该表格中,他们将选择一个网关(Paypal、完美货币等)输入一个金额,然后将其发送到我设计的功能命令进行存款。提交表单时,将发送到控制器,然后通过选择正确的 API 来创建流程以继续现在抛出此错误。需要任何人帮助解决此问题,在此先感谢
错误
Fatal error: Uncaught TypeError: gatewayinfo(): Return value must be of type array, bool returned in C:\xampp\htdocs\model\gateways-model.php:86 Stack trace: #0
网关模型
function gatewayinfo($gateway_id): array
{
try {
$db = createConnection();
$sql = 'SELECT * FROM ays_gateways
WHERE gatewayID = :gatewayID';
$stmt = $db->prepare($sql);
$stmt->bindValue(':gatewayID', $gateway_id, PDO::PARAM_INT);
$stmt->execute();
$gatewayinfo = $stmt->fetch(PDO::FETCH_ASSOC); //line 86
$stmt->closeCursor();
return $gatewayinfo;
} catch (PDOException $e) {
exit($e->getMessage()) ;
return [];
}
}
支付功能
function getPaymentForm('51', gateway_id) {
$gatewayInfo = gatewayinfo($gateway_id); ;
$gateway = $gatewayInfo['name'];
if($gateway == "PayPal") { return PF_PayPal('51',$gateway_id); }
elseif($gateway == "Perfect Money") { return PF_PerfectMoney('51',$gateway_id); }
else { return 'Something was wrong. Please try again.'; }
}
【问题讨论】:
-
检查您设置 PDO 连接的代码。我敢打赌,您在创建 PDO 对象后还没有启用异常。至于您的代码返回的错误:您的查询失败。我将我如何知道这一点留给读者作为练习。 (提示:首先要弄清楚为什么你有一个布尔值而不是一个数组)
-
问题的形式是对未来的用户几乎没有用处或没有用处。一旦问题被理解,过于笼统的、常见的错误消息与单独的代码和最小的修复建议相结合将不会为未来的访问者带来有用的贡献。相反,未来的访问者会因过多的信息而分心,因为太多的问题和答案确实与对错误消息的搜索相匹配。