试图调用MSSQL存储过程。 过程基本上是这样的: USE [数据库] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO使用PDO不工作调用MSSQL存储过程
ALTER过程[DBO] [StoredProcedure的] (@username VARCHAR(10))作为
。SELECT * FROM '表名' 其中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事件探查器对目标数据库,以确保查询/程序实际上是射击? – 2013-02-15 17:28:57
我没有。我以前也没有使用过SQL Profile。我会看看,看看会发生什么。我想知道该过程是否正在解雇,因为我可以在代码中更改其名称,并且在我的结果中不会发生任何事情,或者在Eclipse调试器中指出什么是错误的。 – guppster01 2013-02-15 17:49:50
当我运行探查器时,我看到一个SP:Starting EventClass。文本数据读取:exec [sys] .sp_sproc_columns_110 N'STOREDPROCEDURE',@ odbcver = 3。我应该期望exec之后的信息成为正确存储过程数据库的途径吗?再次在这个菜鸟。我不知道这个价值会有什么期望。 – guppster01 2013-02-15 19:52:47