帮助mysqli和多个查询

时间:2010-01-06 06:47:33

标签: php mysql

我从来没有使用过mysqli直到今天,似乎无法做到这一点。我想要的是一个简单的函数,它接受一个mysql过程调用并让它返回那些结果。

当我开始使用这些程序时,我注意到使用mysql_query查询数据库的旧方法将不再能得到预期的结果;一个程序将成功返回,另一个程序不会。在阅读了手册和其他几个例子之后,我发现这种奇怪行为的原因是因为结果需要缓冲然后清除。我已经尝试了几种方法,并且没有成功。

到目前为止,如果我创建另一个mysqli对象的实例并且会得到我的两个结果,我到目前为止工作,我认为我不应该实例化20个不同的对象来获取20个不同的查询。< / p>

同样,我想要的是拥有一个可以提供程序并返回结果的函数。

$mysqli = new mysqli('host','user','password','test');
$rs = $mysqli->query('CALL titles()');
while($row = $rs->fetch_object())
{
  print_r($row);
}

$mysqli2 = new mysqli('host','user','password','test');
$rs2 = $mysqli2->query('CALL colours()');
while($row2 = $rs2->fetch_object())
{
  print_r($row2);
}

1 个答案:

答案 0 :(得分:0)

你可以为此上课:

db.php //一个db类。调用此方法执行查询。

<?php       
    class MyConnection{ 
        var $db_host = 'Localhost';
        var $db_user = 'mYUserName';
        var $db_password = 'myPassword';
        var $db_name = 'mYDB';
        var $connection;


        function Connect(){
            $this->connection = @mysqli_connect($this->db_host, $this->db_user, $this->db_password) 
            or 
            die("Error: ".mysqli_connect_error());
            mysqli_select_db($this->connection, $this->db_name);
            mysqli_query($this->connection, "SET NAMES 'utf8'");
        }

        function Disconnect(){
            mysqli_close($this->connection);
        }

        function ExecSQL($query){
            $result = mysqli_query($this->connection, $query)
                                or
                                die('Error: '.mysqli_error($this->connection));
            return $result;
        }   

    }

?>

实现:

include "db.php";
$conn = new MyConnection;
$conn->Connect();

$rs = $conn->ExecSQL('CALL titles()');
while($row = $rs->fetch_object())
{
  print_r($row);
}

$rs2 = $conn->ExecSQL('CALL colours()');
while($row2 = $rs2->fetch_object())
{
  print_r($row2);
}
 $conn->Disconnect();