2017-03-15 18 views
0

私はPHPゲームを学んでいます.1つの.phpファイルで2つのタスクを完了する必要があります。私は必要なの
1)サーバー
2)ストアドプロシージャを実行するために接続している()ストアドプロシージャが完全にテーブル
4に対してSELECTステートメントを実行する実行INSERT INTOステートメント)
3)を実行し、結果をエコーPHP複数のタスク1つのファイル

これは私の構文です - >とテーブルtablecreatedfromprocが存在しないというエラーが表示されます。ストアドプロシージャが完全に実行される前にSelectステートメントが起動していますか?私がストアドプロシージャを手動で実行すると、それは(有効な構文である)という意味で実行されますが、PHPファイルから実行しようとするとエラーが発生します。

この構文は、必要に応じて実行するためにどのように更新する必要がありますか? PHP7に削除され- - あなたが別の関数mssql_*実行しようとしている同じ時間に、接続するためにPDOを使用している

//connection string 
$hostname = 'hostname'; 
$dbname = 'dbname'; 
$username = 'username'; 
$password = 'password'; 
$dbh = new PDO("dblib:host=$hostname;dbname=$dbname","$username","$password"); 

//Parsing the passed in data 
$passedparams = implode(',',$_REQUEST['passedparams']); 

//Capturing the dates from passed in data 
$d1 = $_REQUEST['d1']; 
$d2 = $_REQUEST['d2']; 

//Run Stored Procedure To Create Table 
$proc = mssql_init('HoldingPattern',$conn); 
mssql_bind($proc,'@d1',$d1,SQLVARCHAR); 
mssql_bind($proc,'@d2',$d2,SQLVARCHAR); 

//Create Query String to query newly created table 
$sql = "SELECT ".$passedparams." FROM tablecreatedfromproc"; 
$stmt = $dbh->prepare($sql); 
$stmt->execute(); 
+0

エラーが問題を説明し 'と私はテーブルtablecreatedfromprocがexist'しないというエラーを取得するには、テーブルを作成する必要がありますクエリを実行する前に – hassan

+0

@hassan - テーブルは、私がPHPで最初に実行しているストアドプロシージャで作成されます。 (または少なくとも私が思う) – BellHopByDayAmetuerCoderByNigh

+0

どのようにしてmssqlに接続しますか? – hassan

答えて

2

使用PDO execute your proceduresにし、

$stmt = $dbh->prepare("HoldingPattern"); 
$stmt->bindParam(/* your required parameters goes here */); 
$stmt->execute(); 

上記のようにhere

あなたはMSSQLストアドプロシージャからの出力変数を取得する必要がある場合は、これを試してみてください。

-- PROCEDURE 
CREATE PROCEDURE spReturn_Int @err int OUTPUT 
AS 
SET @err = 11 
GO 

$sth = $dbh->prepare("EXECUTE spReturn_Int ?"); 
$sth->bindParam(1, $return_value, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT); 
$sth->execute(); 
print "procedure returned $return_value\n"; 
+0

パラメータをバインドするにはどうすればよいですか?リンクした例では、出力と入出力を示しています - 入力パラメータのみが必要です。 – BellHopByDayAmetuerCoderByNigh

+0

'$ sth-> bindParam(xxx、xxx、PDO :: PARAM_INT | PDO :: PARAM_INPUT_OUTPUT);'次のように – hassan

関連する問題