2012-03-16 13 views
0

ストアドプロシージャとPDOライブラリの新機能です。私は、PDO関数を使用してストアドプロシージャを実行し、出力パラメータと共にレコードセットを取得しようとしています。どの機能を使用する必要があり、どのパラメータが必要ですか?入力パラメータと出力パラメータを使用したSQLストアドプロシージャの実行

次の例のような関数を使って基本的なステートメントを実行したい場合は、どのようなPDOメソッドを使用しますか?例えば

$mssql = new mssql; 

$mssql->sql('stored_procedure()'); 
$mssql->sql('SELECT * FROM [test]'); 

私は関数が文のタイプに依存し、正しい結果を返すようにしたいです。これは可能でしょうか?

UPDATE

念のために、私はそれを非常に明確にdidntは、 'MSSQL' クラスは、クエリを実行するためにPDOクラスを使用しています。現時点では私が使用しています:

$PDO->prepare(); 
$PDO->exec(); 

答えて

0

インターネットを中心に研究した後、私はそれはPDOは、bindParamを準備し、メソッドを実行使用して実際には非常に簡単です発見しました。

私のクラスを使用してストアの手順の例:

do{ 
    // Get the results 
    $results = $query->fetchAll(PDO::FETCH_ASSOC); 

    // Only place the results into the array if they exist 
    if(!empty($results)){ 
     $data[$i]['results'] = $results; 
    } 

    // Set the number of rows in the result array 
    $data[$i]['rows'] = $query->rowCount(); 

    // Increment i 
    $i++; 
}while($query->nextRowset()); 

そして:レコードセットは、その後、使用して取得することができ

$query = $PDO->prepare({CALL sp_Batch_Sales(@paramOne=:paramOne,@paramTwo=:paramTwo)}); 
$query->bindParam(':paramOne',$returned_parameters['paramOne']); 
$query->bindParam(':paramTwo',$returned_parameters['paramTwo'],PDO::PARAM_INT,8); 
$query->execute(); 

$mssql->bind_params = array(
    'BatchNum' => array(
     'value' => 'SS000008' 
    ), 
    'RecCount' => array(
     'value' => 0, 
     'type' => PDO::PARAM_INT, 
     'length' => 8 
    ) 
); 
$mssql->sql("{CALL sp_Batch_Sales(@paramOne=:paramOne,@paramTwo=:paramTwo)}"); 

これはに変換され、配列を使用して入出力パラメータを取得できます。

$returned_parameters 

これが役立つことを願っています。

関連する問題