以下是创建和执行存储过程!我测试都能成功!create procedure p1(in start_time datetime,in end_time datetime)
SELECT * FROM `organ` WHERE regdate between start_time  and end_time call p1('2010-03-08 14:40:00','2010-03-08 15:10:59');
以下是PHP代码!//调用 方法
print_r($dbc->getProcedure("call p1('2010-03-08 14:40:00','2010-03-08 15:10:59')")); function  getProcedure($sql)
 {
mysql_connect('localhost','root','') or die(mysql_error("数据库链接失败"));
mysql_select_db('testDB')
  $query_id=  mysql_query($sql,$this->conn)   or   die("无法执行1");   die();
return $query_id;
 }
可是总显示无法执行!去掉or   die("无法执行1"); 就什么都没有!到底应该怎么做!才能让PHP执行MySql的存储过程!请各位前辈指正!
谢谢!

解决方案 »

  1.   

    http://www.diybl.com/course/7_databases/mysql/Mysqljs/2008614/125576.html
      

  2.   

    把getProcedure函数改改试试。还有确定你的存储过程是在testDB库下建的。
    function  getProcedure($sql)
     {
        $conn = mysql_connect('localhost','root','',true,131072) or die(mysql_error("数据库链接失败"));
        mysql_select_db('testDB')
        $query=  mysql_query($sql,$conn)   or   die("无法执行1"); 
        $data = array();
        whiel($row = mysql_fetch_array($query,MYSQL_ASSOC))
        {
           $data[] = $row;
        }
        return $data;
     }
      

  3.   

    可以用mysqli或者pdo就不要考虑mysql_前缀的一系列方法了
      

  4.   

    存储过程要用mysqli_前缀的函数来执行, mysql_前缀的不兼容大部份储存过程。
      

  5.   

     mysqli_multi_query($this->conn,$sql);
      

  6.   

    2楼前辈!我测试过了!到这步就出错了!
      $query=  mysql_query($sql,$conn)   or   die("无法执行1");
      

  7.   

    吧 die("无法执行1");  改为 die(mysql_error()); 
    看看都是些什么?
      

  8.   

    看来必须的用mysqli了!2楼前辈我执行到这里就报错了!
    $query=  mysql_query($sql,$conn)   or   die("无法执行1"); 
      

  9.   

    7楼前辈!请看报错!
    Warning: mysqli_multi_query() expects parameter 1 to be mysqli, resource given in D:\wamp\www\includes\dbconn.php on line 90Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\wamp\www\includes\dbconn.php on line 92
    Array ( ) 
      

  10.   

    mysqli_query()试试。expects parameter 1 to be mysqli意思是说缺少资源。这样试试
    mysqli_select_db($link, "dbname");