我需要调用两个在MySQL中创建并在PHP文件中返回记录的过程。我无法一个接一个地调用程序。如果我在另一个程序之后调用一个程序(从单个PHP页面),则第二个程序将不会返回任何记录。
即使我执行一个select
stament,它在一个过程(返回记录)之后返回记录,也意味着select
语句不会返回任何值。为什么会这样?我们怎样才能在一个PHP页面中一个接一个地调用两个程序?
您好我在这里添加我的代码......
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];
}
?>
第二次过程没有任何回报。如果我在第二次procdeure之后执行任何选择查询,我也不会返回任何内容。
答案 0 :(得分:0)
试试这个
<?php
// New Connection
$db = new mysqli('localhost','user','pwd','Dbname');
// Check for errors
if(mysqli_connect_errno())
{
echo mysqli_connect_error();
}
// 1st Query
$result = $db->query("call proc1($empcode)");
if($result)
{
while ($row = $result->fetch_object())
{
echo $col1="$row->Column Name1"."<br>";
echo $col2="$row->Column Name2"."<br>";
}
// Free result set
$result->close();
$db->next_result();
}
// 2nd Query
$result = $db->query("call proc2('$empcode')");
if($result)
{
while ($row = $result->fetch_object())
{
echo $col1="$row->Column Name1"."<br>";
echo $col2="$row->Column Name2"."<br>";
}
// Free result set
$result->close();
$db->next_result();
}
else echo($db->error);
// Close connection
$db->close();
?>
答案 1 :(得分:0)
执行首次采购后放置$db->next_result();
。