【问题标题】:Use MSSQL stored procedure with parameters in Laravel 4在 Laravel 4 中使用带参数的 MSSQL 存储过程
【发布时间】:2013-10-03 21:47:40
【问题描述】:

对于一个项目,我们使用的是 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 级)

【问题讨论】:

    标签: php sql-server stored-procedures laravel laravel-4


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 嗨,Maxim,我也试过这个。添加呼叫,但它给了我同样的错误。抱歉回复晚了。
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多