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

在php中使用PDO执行带参数的SQL Server存储过程,php,sql-server,pdo,Php,Sql Server,Pdo,我似乎很难执行包含参数的ms sql server存储过程,我可以执行简单的select语句或不带参数的存储过程,但只要我尝试绑定参数,我就会收到以下消息: “发生错误:SQLSTATE[HY000]:一般错误:102一般SQL Server错误:检查来自SQL Server的消息[102](严重性15)[(null)]” 来自php的代码是: $pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::

我似乎很难执行包含参数的ms sql server存储过程,我可以执行简单的select语句或不带参数的存储过程,但只要我尝试绑定参数,我就会收到以下消息:

“发生错误:SQLSTATE[HY000]:一般错误:102一般SQL Server错误:检查来自SQL Server的消息[102](严重性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();
    }


有谁能帮我解决我的问题吗?

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

你检查过你准备好的陈述了吗…你是说检查了准备好的陈述Christopher?如果这是显而易见的,我很抱歉,但我对pdo有点陌生。谢谢