使用PDO调用MSSQL存储过程不起作用


Calling MSSQL Stored Procedure using PDO not working

尝试调用MSSQL存储过程。程序基本上是这样的:使用[数据库]去在上设置ANSI_NULLS去设置QUOTED_IDENTIFIER转到

ALTER过程[dbo]。[储存过程](@username varchar(10))作为

SELECT*FROM"表名"其中userfield=@用户名


PHP Code
$username = 'username';
try {
    $connection = new PDO('odbc:Driver={SQL Server Native Client 10.0};Server={SERVER};Database={DATABASE};Uid={USER};Pwd={PASSWORD}', 'USER', 'PASSWORD');
}
catch(PDOException $e) {
    echo 'Connection Failed :'.$e->getMessage().PHP_EOL;
    echo 'Please contact the application administrator';
}
$stm = $connection->prepare("CALL STOREDPROCEDURE(?)");
$stm->bindParam(1, $username, PDO::PARAM_STR, 10);
$stm->execute();
$results = $stm->fetchAll();
var_dump($results);

输出为:数组(0){}这个数据库里有大量的数据。

我知道与数据库的连接是有效的,当我在连接中更改数据库的名称时,它会失败。

但是,当我在(调用ADanE1Username)行中更改存储过程的名称时,结果不会发生任何更改。

如有任何帮助,我们将不胜感激。谢谢

使用SQL SERVER时,必须使用

$stm = $connection->prepare("EXEC STOREDPROCEDURE(?)");

EXECUTE(Transact-SQL)