未定义的变量:con无法从mysql中获取数据


Undefined variable: con Cannot fetch data from mysql

index.php

<?php include'includes/nav.php'; ?>
<?php include "includes/db.php"; ?>

包括/nav.php

<?php 
$allcategeories = mysqli_query($con,"SELECT * FROM categories");
while($row = mysqli_fetch_assoc($allcategeories ))
{
   echo "<li>{$row['cat_title']}</li>";
}
 ?>

包括/db.php

<?php
$db['DBhost'] = "localhost";
$db['DBuser'] = "root";
$db['DBpass'] = "";
$db['DBNAME'] = "cms";
foreach($db as $key => $value) {
    define(strtoupper($key), $value);
}
$con = mysqli_connect(DBHOST,DBUSER,DBPASS,DBNAME);
if(!$con) {
    echo "cannot establish connection";
}
?>

错误

注意:第19行C:''examplep''htdocs''blog''includes''nav.php中的未定义变量:con

警告:mysqli_query()要求参数1为mysqli,在第19行的C:''examplep''htdocs''blog''includes''nav.php中为null

警告:mysqli_fetch_assoc()要求参数1为mysqli_result,在第20行的C:''examplep''htdocs''blog''includes''nav.php中为null

更改在index.php中包含文件的顺序

首先你包括你的数据库文件

<?php include "includes/db.php"; ?>

然后

<?php include'includes/nav.php'; ?>

因为你的数据库连接在你的db.php中被玷污了,包括在nav.php之后,你得到了一个定义变量con