0

对于一个项目,我们使用的是 MSSQL 数据库。我想使用 Laravel 4 访问数据库中的存储过程。我设法通过以下方式做到这一点:

$pdo = DB::connection()->getPdo();
$stmt = $pdo ->prepare('getArticles');
$stmt->execute();

但是如果存储过程需要参数,我不知道如何传递它们。对于常规选择,这有效:

$pdo = DB::connection()->getPdo();
$sql = "SELECT * FROM articles WHERE id = ?";
$stmt = $pdo ->prepare($sql);
$stmt->execute(array(213));

但是当我为存储过程尝试以下操作时,它给了我一个错误:

$pdo = DB::connection()->getPdo();
$stmt = $pdo ->prepare('getTurnover(?,?)');
$stmt->execute(array(1, 2013));

有谁知道是否可以将参数发送到存储过程?如果是这样,怎么做?

编辑:我得到的错误是:

PDOStatement::execute() [pdostatement.execute]:消息:“1”附近的语法不正确。(严重性 15)

4

1 回答 1

0

尝试这个:

$pdo = DB::connection()->getPdo();
$stmt = $pdo ->prepare('CALL getTurnover(?,?)');
$stmt->execute(array(1, 2013));

无论如何,请阅读此http://www.php.net/manual/en/pdo.prepared-statements.php

于 2013-09-29T21:43:21.883 回答