我有下面的过程,目的是选择包含参数的基列:
CREATE PROCEDURE GetMap(p_team VARCHAR(100) CHARSET 'utf8')
BEGIN
SELECT Base FROM map WHERE
map.Base = p_team OR
Ver1 = p_team OR
Ver2 = p_team OR
Ver3 = p_team OR
Ver4 = p_team OR
Ver5 = p_team OR
Ver6 = p_team OR
Ver7 = p_team OR
Ver8 = p_team OR
Ver9 = p_team OR
Ver10 = p_team OR
Ver11 = p_team OR
Ver12 = p_team;
end //
当我尝试像这样从PHP调用过程时:
function getMap($data){
$query = $this->PDO->prepare("CALL GetMap(:data)");
$query->bindParam(':data', $data);
$ex = $query->execute();
$res = $ex->fetchColumn();
echo $res;
if($res){
return $res;
}
else
{
return $data;
}
}
返回一个异常:
在非对象上调用成员函数fetchColumn()
如何从选择过程中获得基列作为变量?
在execute返回值上调用fetchColumn,正如您在这里看到的,这是一个布尔值。
该方法需要在PDOStatement类的实例上调用,因此在您的示例中,$query变量 这意味着$res = $query->fetchColumn();
代替
$res = $ex->fetchColumn();