ADODB を使用して PHP から SQL Server データベースに接続しています。私は問題なく実行しているいくつかのストアド プロシージャを持っています。何らかの理由で作成した最後の呼び出しが失敗し続けます。debug を true にすると、問題なく動作します。なぜこれが起こるのか私にはわかりません。
ここに私が得るエラーがあります
Error: mssql_execute() [<a href='function.mssql-execute'>function.mssql-execute</a>]: stored procedure execution failed in /path/to/adodb/lib/adodb5/drivers/adodb-mssql.inc.php on line 768
これは、すべてのストアド プロシージャを渡すために作成したメソッドです。他のストアド プロシージャでも問題なく動作すると言ったように、これはパラメーターとストアド プロシージャのすべてのスペルが正しいことを再確認しました。
protected function _getSpArray($db, $sp, array $spParams) {
try {
$stmt = $db->PrepareSP($sp);
foreach ($spParams as $param) {
$db->InParameter($stmt, $param[0], $param[1]);
}
$db->SetFetchMode(ADODB_FETCH_ASSOC);
$rs = $db->Execute($stmt);
$rsArray = array();
if (!$rs) {
echo 'No records found \n';
return;
}
else {
foreach ($rs as $k => $row) {
$rsArray[$k] = $row;
}
}
return $rsArray;
} catch (ErrorException $e) {
echo $e->getMessage();
}
}
adodb5/drivers/adodb-mssql.inc.php のこの行 #768 で失敗しています
$rez = mssql_execute($sql[1]);
SQL配列にはこれらの値があります
[0] stored_procedure_name
[1] resource id='657' type='mssql statement'
PHP.net で次のコメントを見たことがあります。freetds のホスト名を IP アドレスとは別のものに変更しましたが、まだ何もありません。私はadodbを使用しているので、無料の結果についてはわかりません。
http://www.php.net/manual/en/function.mssql-execute.php#93938
私はadodb 5.11を使用しています