$mysql_obj = new Mysql(); //建立数据库连接对象      
   
$sql = "call proc_operator_select('$code')";
$operator_sub_array = $mysql_obj->fetch_array($sql);$sql_company = "CALL proc_baseinfo_search(3)";
$company_array = $mysql_obj->fetch_array($sql_company);$sql_role = "CALL proc_role_search_all";
$role_array = $mysql_obj->fetch_array($sql_role);
上面这样写,后面两个存储过程就执行不了。得写成这样:
$mysql_obj = new Mysql(); //建立数据库连接对象      
   
$sql = "call proc_operator_select('$code')";
$operator_sub_array = $mysql_obj->fetch_array($sql);$mysql_obj1 = new Mysql(); //建立数据库连接对象    
$sql_company = "CALL proc_baseinfo_search(3)";
$company_array = $mysql_obj1->fetch_array($sql_company);$mysql_obj2 = new Mysql(); //建立数据库连接对象    
$sql_role = "CALL proc_role_search_all";
$role_array = $mysql_obj2->fetch_array($sql_role);
有没有什么办法可以解决,我不想实例化这么多个,有没有什么办法可以只实例化一次

解决方案 »

  1.   

    你少了 mysql_free_result 这个步骤$query = 'SELECT * FROM my_table';
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());// Printing results in HTML
    echo "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo "\t<tr>\n";
        foreach ($line as $col_value) {
            echo "\t\t<td>$col_value</td>\n";
        }
        echo "\t</tr>\n";
    }
    echo "</table>\n";// Free resultset
    mysql_free_result($result);
      

  2.   

    示例:
    $host="localhost";
        $user="root";
        $password="11212";
        $db="samp_db";
        $dblink=mysql_connect($host,$user,$password)
                or die("can't connect to mysql");
     mysql_select_db($db,$dblink)
          or die("can't select samp_db");
        $res=mysql_query("set @a=$password",$dblink);
        $res=mysql_query("call aa(@a)",$dblink);
        $res=mysql_query("select @a",$dblink);
        $row=mysql_fetch_row($res);
        echo $row[0];
      

  3.   


    //筛选数据
    function fetch_array($sql) {  //$sql必须为查询语句,返回select后的所有记录
    $rowarray=array();
    $query=$this->query($sql);
    $i=0;
    $row=@mysql_fetch_array($query);
    while ($row) {
    $rowarray[$i]=$row;
    $i++;
    $row=mysql_fetch_array($query);
    }

    return $rowarray;
    mysql_free_result($query); //可以不释放,页面跳转时自动释放
    }
    我上面的代码会调用fetch_array这个函数,我就是在这个函数最后加上mysql_free_result($query); //可以不释放,页面跳转时自动释放
      

  4.   

    在query函数里面用mysqli_query试试。
      

  5.   

    mysql_free_result($query)放到return $rowarray;之前试试
      

  6.   


    放到前面提示:Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\sm\trunk\class\system.class.php on line 116
      

  7.   


    好像从第二个存储过程开始都返回不了结果了
    我发现个问题,换一个开发套件就好了,我用的是XAMPP FOR WIN,这是为什么?是不是PHP.ini里或my.ini里的设置问题?不过我都看了,改了,没有效果,请问一下大家