存储过程和PDO

时间:2013-08-20 12:41:31

标签: stored-procedures pdo

我正在尝试使用PDO扩展作为我的方法从MySQL存储过程调用返回行集。

function searchByExtension($extension_num) 
{

    $stmt = $this->pdo->prepare("{CALL select_call(?)}");
    $stmt->bindParam(1, $extension_num, PDO::PARAM_INT, 11);
    $stmt->setFetchMode(PDO::FETCH_NUM);
    $stmt->execute();

    $rows = $stmt->fetchAll();

    if(!$rows){
        print 'Error!';
        die();
    }

    foreach ($rows as $row){
        print $row[0].$row[1].$row[2].$row[4].$row[5].$row[6]."\n<br>";
    }

}

所以打电话给

$call_log->searchByExtension(2458412);

会遍历我的数据集,相应地将结果打印到浏览器,只有它不会飞。脚本到达

print 'Error!';

并且正式死亡? SP可以从shell中正常工作。

1 个答案:

答案 0 :(得分:-1)

试试这个......

function searchByExtension($extension_num) 
{
    $stmt = $this->pdo->prepare("CALL select_call(:input_extensionNum);");
    $stmt->bindParam(":input_extensionNum", $extension_num, PDO::PARAM_INT, 11);

    //$stmt->setFetchMode(PDO::FETCH_NUM);
    $stmt->execute();

    $rows = $stmt->fetchAll();

    if(!$rows){
        print 'Error!';
        die();
    }

    foreach ($rows as $row){
        print $row[0].$row[1].$row[2].$row[4].$row[5].$row[6]."\n<br>";
    }

}