MySQL で作成され、PHP ファイルでレコードを返す 2 つのプロシージャを呼び出す必要があります。プロシージャを次々と呼び出すことができません。(単一の PHP ページから) 別のプロシージャを次々と呼び出すと、2 番目のプロシージャはレコードを返しません。
select
プロシージャ(レコードを返す)の後にレコードを返すステートメントを実行しても、select
ステートメントは値を返さないことを意味します。なぜこれが起こっているのですか?1 つの PHP ページで 2 つのプロシージャを次々に呼び出すにはどうすればよいでしょうか?
こんにちは、ここにコードを追加しています...
model.php ファイルの内容
<?php
class DBoperation {
function connect(){
$this->con=mysql_connect('localhost','root','');
mysql_select_db('test',$this->con);
}
function call proc2($empcode){
$this->sql="call proc1('$empcode',@strGrpId,@strTodate,@strAccPrTodt,@strRecalculate)";
}
function callproc2($strEmpCode){
$this->sql="call proc2('$strEmpCode',@a,@b,@c,@d,@e,@f)";
}
function execute(){
$res = mysql_query($this->sql);
return $res;
}
}
?>
view.php ファイルの内容
<?php
require_once('../../model/model.php');
$empcode = $_SESSION['empcode'];
$obj=new DBoperation();
$obj->connect();
//calling first procedure
$obj->callproc1($empcode);
$res = $obj->execute();
while($result=mysql_fetch_array($res)) {
echo $result[0];
}
//calling second procedure
$obj->callproc2($empcode);
$fetch=$obj->execute();
while($fetch1=mysql_fetch_array($fetch)){
echo $fetch1[0];
}
?>
2 番目のプロシージャは何も返しません。2番目の手順の後に選択クエリを実行しても、何も返されません。