我正在尝试编写以下函数来显示 MySQL 表的内容。
$q=$_GET["q"];
function risk_allocation($db)
{
$result = $db->query("select r.risks as risks,r.risktype as risktype,j.job as job from risks r LEFT OUTER JOIN `jobsrisks` j on r.risks = j.risk and j.job=:q");
$result ->bindParam(':q', $q, PDO::PARAM_INT);
return $result;
}
$allocationlist = risk_allocation($db);
然后我用以下方法调用函数:
while($row = $allocationlist->fetch(PDO::FETCH_ASSOC))
{
echo $line['risks'];
echo $line['risktype'];
}
我收到错误消息:
Fatal error: Call to a member function bindParam() on a non-object in /home/she/public_html/versionfour/getrisksperjob.php on line 11
第 11 行在哪里
$result ->bindParam(':q', $q, PDO::PARAM_INT);
我觉得这是一个简单的问题,因为我刚刚被介绍给 pdo,但任何帮助都一如既往地受到赞赏。
更新
根据建议的答案,我的代码现在如下执行查询并包含变量 q。但是仍然会发生相同的错误。感谢您迄今为止的帮助,有什么想法吗?
致命错误:在第 11 行的 /home/she/public_html/versionfour/getrisksperjob.php 中的非对象上调用成员函数 bindParam()
function risk_allocation($db,$q)
{
$result = $db->query("select r.risks as risks,r.risktype as risktype,j.job as job from risks r LEFT OUTER JOIN `jobsrisks` j on r.risks = j.risk and j.job=:q");
$result ->bindParam(':q', $q, PDO::PARAM_INT);
$result->execute();
return $result;
}
$allocationlist = risk_allocation($db,$q);