无法在PHP函数中使用数据库变量

我正在编写一个轮胎概述网站,作为用于互联网编程的项目。我目前有一个数据库连接文件,一个标头和一个php文件,以显示来自数据库的数据。

数据库连接类包含在标题中。标头包含在我的控制器php类中,而控制器类包含在View类中。

现在是我的问题:只要我的数据库变量不在函数中,我就可以在其控制器文件中使用它。如果我尝试在控制器文件中编写函数,它将找不到数据库变量。

我尝试使$ db变量成为全局变量,并尝试了许多不同的连接数据库方法。连接始终有效,但是我无法访问函数内部的变量。请帮助

控制器文件

include '../../header.php';

// Bisherige Manufacturer Auslesen
$sql = 'SELECT * FROM tire_manufacturer';
$result = $db->rawQuery($sql,Array(10));
$rows = array();
foreach ($result as $row){
    $row['count'] = getModelCountByManuid($row['id']);
    array_push($rows,$row);
}

function getModelCountByManuid($manu_id){
    $sql = 'SELECT COUNT(id) as counti FROM tire_model WHERE cat_id_manufacturer = ' . $manu_id;
    $result = $db->rawQuery($sql,Array(10));
}

头文件


include "Helper/MyCrypt.php";
require_once ('Helper/MysqliDb.php');

$db = new MysqliDb ('rdbms.strato.de','****','****');
?>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="../CSS/carspace.css" type="text/css">

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnqq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmvgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">```
ccwysxbf 回答:无法在PHP函数中使用数据库变量

对于php,您需要使用global来访问函数外部的变量:

 function getModelCountByManuid($manu_id){
        global $db;
        $sql = 'SELECT COUNT(id) as counti FROM tire_model WHERE cat_id_manufacturer = ' . $manu_id;
        $result = $db->rawQuery($sql,Array(10));
    }
本文链接:https://www.f2er.com/3165777.html

大家都在问