Php 通过两次连续选择,MySQLi连接超时

Php 通过两次连续选择,MySQLi连接超时,php,mysqli,Php,Mysqli,我试图使用PHP从数组结构的数据库中获取结果。为此,我使用以下代码: config.php: database.class.php: 为了使用它,我做了以下工作: $data = $db->select('*', 'users', 'idlevel = 1 LIMIT 10'); 此$data将返回一个数组,如下所示: [1]=> array(6) { ["id"]=> int(17) ["nome"]=> string(13) "

我试图使用PHP从数组结构的数据库中获取结果。为此,我使用以下代码:

config.php:

database.class.php:

为了使用它,我做了以下工作:

$data = $db->select('*', 'users', 'idlevel = 1 LIMIT 10');
此$data将返回一个数组,如下所示:

 [1]=>
  array(6) {
    ["id"]=>
    int(17)
    ["nome"]=>
    string(13) "Gareth Barlow"
    ["email"]=>
    string(30) "sit.amet@semPellentesqueut.net"
    ["idnivel"]=>
    int(1)
    ["password"]=>
    string(0) ""
    ["departamento"]=>
    NULL
  }
  [2]=>
  array(6) {
    ["id"]=>
    int(20)
    ["nome"]=>
    string(9) "John Lara"
    ["email"]=>
    string(13) "odio@arcu.net"
    ["idnivel"]=>
    int(1)
    ["password"]=>
    string(0) ""
    ["departamento"]=>
    NULL
  }
但是,如果我在$data行之后执行另一个数据库调用,如:

浏览器试图返回数据,但在短时间内,它给我“连接已重置…”

有没有办法执行这些查询并返回两个这样的数组

更新1 好吧,我想我找到了解决这个问题的办法

function select($campos, $tabela, $condicao='')
        {
            $query = 'SELECT '.$campos.' FROM '.$tabela;
            if(trim($condicao!='')){
                $query.=' WHERE '.$condicao;
            }
            $result = $this->mysqli->query($query);
            if ($result = $this->mysqli->query($query)) {
                while ($row = $result->fetch_assoc()) {
                    $dados[] = $this->getCopy($row);
                }
                return $dados;
                $result->free();
            }
        }
这使我可以使用来做同样的事情,没有错误。
感谢人们

我认为您需要关闭语句对象

在选择功能中,在

return $dados; 
制造

$stmt->close();

简单地使用不同的对象怎么样

$db1 = new Database($mysqli);
$data1 = $db->select('*', 'users', 'idlevel = 1 LIMIT 10');

$db2 = new Database($mysqli);
$data2 = $db->select('*', 'users', 'idlevel = 1 LIMIT 10');

class Post extends Eloquent {

它不能解决数据库类中的潜在问题,但它应该可以为您争取时间来寻找替代方案。老实说,您正在使用的那一个看起来不是很有用。

这可能与您的问题无关,但这行代码是:iftrim$condico={没有意义。$condicao!=是一个布尔值true或false,所以您正在修剪true或false。我想您的意思是iftrim$condicao={是的,你说得对,Kryten。我这样做只是为了检查是否有任何条件,否则我会执行查询。这让我分心:D谢谢;我认为第一个查询中有一些东西正在打开和使用中……所以当第二个查询执行时,数据库会锁定查询,直到有东西被释放。试着做一个$this->mysqli->commit或$this->mysqli->在第一个$db->select和第二个$db->select之间回滚…这不适用于。你说得对,Dave,这个解决方案不是最好的。但这就是我发现的创建这种类型数组的方法…你有没有任何解决方案来创建这样的数组,使用不同的代码?
return $dados; 
$stmt->close();
$db1 = new Database($mysqli);
$data1 = $db->select('*', 'users', 'idlevel = 1 LIMIT 10');

$db2 = new Database($mysqli);
$data2 = $db->select('*', 'users', 'idlevel = 1 LIMIT 10');

class Post extends Eloquent {