繁体   English   中英

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

[英]Calling MSSQL Stored Procedure using PDO not working

试图调用MSSQL存储过程。 程序基本上是这样的:USE [DATABASE] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

ALTER程序[dbo]。[STOREDPROCEDURE](@ username varchar(10))as

SELECT * FROM'table name',其中userfield = @username


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);

输出为:array(0){}此数据库中有大量数据。

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

但是,当我在我的(调用ADanE1Username)行中更改存储过程的名称时,我的结果没有变化。

任何帮助,将不胜感激。 谢谢。

使用SQL SERVER,您必须使用

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

执行(Transact-SQL)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM