【发布时间】:2016-09-15 01:33:05
【问题描述】:
我想用两个in参数调用mysql存储过程,比如from和to,并打印表中的数据。我使用了以下代码:
try
{
$age_from = $_POST['from'];
$age_to = $_POST['to'];
$stmt = $db->prepare("CALL proc_report_filtered(:age_from,:age_to)");
$stmt->bindParam(':age_from',$age_from);
$stmt->bindParam(':age_to',$age_to);
$records = $stmt->execute();
$records->setFetchMode(PDO::FETCH_ASSOC);
}
catch (PDOException $e)
{
die("Some problem getting data from database !!!" . $e->getMessage());
}
后来我像以前一样使用while循环来打印表格数据。
while ( $report = $records->fetch() )
存储例程 proc_report_filtered 是一个简单的查询来获取年龄范围之间的数据,如下所示:
select * from employee where age in between 30 and 40;
其中 30 是 $age_from,40 是 $age_to 传递给存储例程。
不幸的是,代码不起作用。请纠正我哪里出错了。我是使用 php PDO 的新手。
【问题讨论】:
-
我没有得到的东西。你有
query("call proc_report")但你在另一个使用CALL proc_report_filtered(:n_c_from,:n_c_to)。是这 2 个不同的程序,还是您调用了错误的程序? -
查看您是否从php.net/manual/en/pdo.error-handling.php 中得到任何信息,并确保这些 POST 数组包含值。
-
$n_c_from和$n_c_to在您的代码中未定义!! -
@Fred -- 两者都是不同的程序。第一个工作正常,但第二个不工作(proc_report_filtered)
-
这就是错误报告在这里您的朋友。自从我被轰炸(上周左右)后,我就不再发布它了。但是,嘿...为什么不呢,只是为了过去=>> php.net/manual/en/function.error-reporting.php
标签: php stored-procedures pdo