使用php中的PDO使用参数执行SQL Server存储过程

时间:2013-12-22 07:07:55

标签: php sql-server pdo

我似乎很难执行包含参数的ms sql server存储过程,我能够执行简单的select语句或没有参数的存储过程但是只要我尝试绑定参数,我就得到消息:

"An error occured: SQLSTATE[HY000]: General error: 102 General SQL Server error: Check messages from the SQL Server [102] (severity 15) [(null)]"

来自php的

代码是:

    $pdo = new PDO($dsn, $user, $password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    try {
    $sql = $pdo->prepare("EXEC [contractor].[sync_licence] (?)");
    $params = 5;
    $sql->bindParam(1, $params, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);
    $sql->execute();
    $results = $sql->fetchAll();
    var_dump($results);
    } catch (PDOException $e) {
    echo 'An error occured: ' . $e->getMessage();
    }

任何人都可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:2)

对于任何感兴趣的人,我都发现了上述陈述的问题。返回的错误消息基本上指向t-sql语句的语法问题,在这种情况下问题是围绕?的(),因此通过删除()程序现在可以工作,希望这有助于任何人有相同的问题