我似乎很难执行包含参数的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)]"
代码是:
$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();
}
任何人都可以帮我解决问题吗?
答案 0 :(得分:2)
对于任何感兴趣的人,我都发现了上述陈述的问题。返回的错误消息基本上指向t-sql语句的语法问题,在这种情况下问题是围绕?的(),因此通过删除()程序现在可以工作,希望这有助于任何人有相同的问题