0

MSSQL ストアド プロシージャを呼び出そうとしています。手順は基本的に次のとおりです。 USE [DATABASE] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

ALTER プロシージャ [dbo].[STOREDPROCEDURE] (@username varchar(10)) as

SELECT * FROM 'テーブル名' where 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) { } このデータベースには大量のデータがあります。

データベースへの接続が機能することはわかっていますが、接続でデータベースの名前を変更すると失敗します。

ただし、(Call ADanE1Username) 行でストアド プロシージャの名前を変更しても、結果は変わりません。

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

2

SQL SERVERでは、次を使用する必要があります

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

EXECUTE(Transact-SQL)

于 2013-02-15T17:29:17.457 に答える