尝试调用MSSQL存储过程。 程序基本上是这样的: 使用[数据库] 走 SET ANSI_NULLS ON 走 SET QUOTED_IDENTIFIER ON GO
ALTER程序[dbo]。[STOREDPROCEDURE] (@username varchar(10)) 如
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)行中更改存储过程的名称时,我的结果没有变化。
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
使用SQL SERVER,您必须使用
$stm = $connection->prepare("EXEC STOREDPROCEDURE(?)");
<强> EXECUTE (Transact-SQL) 强>