我从来没有使用过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);
}
答案 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();