PHP PDO:在预准备语句中的多个行集上的nextRowset

时间:2011-08-26 06:08:33

标签: php mysql stored-procedures pdo prepared-statement

我有下面的PHP脚本,它使用PDO来准备和调用MySQL存储过程。存储过程返回2个行集。第1行包含25行。第二行包含1行。我似乎无法获取nextRowset来获取第二行集。我知道存储过程有效,因为它在我使用mysqli_next_result时工作。感谢...

1。)我做错了什么?

2。)是否有更有效或更安全的方式来编写此脚本?我对所有的ajax调用使用相同的格式。我知道我可以将$ _GET参数绑定到数据类型(字符串,整数)以使其更安全,但存储过程已经这样做了。

<?php
header('Content-type: application/json');
session_start();
if(isset($_SESSION['Logged_In'])){
    $r=array();
    require('db.inc');
    $s=$c->prepare("CALL get_records({$_SESSION['User_ID']},?,?,?)");
    $s->execute($_GET);
    do{$r[]=$s->fetchAll(PDO::FETCH_NUM);}while($s->nextRowset());
    $c=null;
    echo json_encode($r);
}
?>

0 个答案:

没有答案