Php 通过两次连续选择,MySQLi连接超时
我试图使用PHP从数组结构的数据库中获取结果。为此,我使用以下代码: config.php: database.class.php: 为了使用它,我做了以下工作: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) "
$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 {