conne-6ren">
gpt4 book ai didi

PHP 函数在我第二次调用它时不起作用

转载 作者:行者123 更新时间:2023-11-29 00:02:45 25 4
gpt4 key购买 nike

我有一个问题,我创建了一个将查询结果返回到组合框的函数,它工作正常,但是当我第二次调用它时它不起作用。

conexion.php

<?php
$db = new mysqli('localhost', 'root', 'pass', 'table');
$db->set_charset("utf8");
if($db->connect_errno > 0){
die('Cannot connect [' . $db->connect_error . ']');
}
?>

咨询.php

<?php
class consulta{

public function get_combo($tabla,$nombre,$valor,$vista){


require_once 'conexion.php';

$sql ='SELECT * FROM '.$tabla;

if(!$result = $db->query($sql)){
die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}
$combo.=" <option value='0' selected disabled class='combo'>$nombre</option>";
while ($row =$result->fetch_assoc()) {
$comboestado .=" <option value='".$row[$valor]."'>".$row[$vista]."</option>";

}
$db->close();
return $combo;

}
}

?>

索引.php

<?php 

include_once '../php/consulta.php';
$consulta = new consulta();
$comboState=$consulta->get_combo('state','State','id','name');
$comboTown=$consulta->get_combo('town','Town','id','name');

?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<select name="" id="state" class="form-group form-control">

<?php echo $comboState; ?>

</select>

<select name="" id="town" class="form-group form-control">

<?php echo $comboTown; ?>

</select>
</body>
</html>

该函数第一次工作,但是当我添加第二次调用时它不工作,即使我使用相同的参数也是如此。

最佳答案

在第一次调用 get_combo 时,require_once 会导致加载 conexion.php,从而创建 mysqli。然而,一旦 get_combo 函数退出,$db 变量就会超出范围并将被清除。

在第二次调用 get_combo 时,conexion.php 文件没有再次加载,因此 $db 不存在。

关于PHP 函数在我第二次调用它时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com