对于我们正在使用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]:message:'1'附近的语法不正确。 (严重程度15)
答案 0 :(得分: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