我有一个config / settings php文件(config.php),该文件包含在顶部的index.php页面中。 (都在同一目录中)此文件包含sql数据库信息。我的导航通过$ _GET方法完成,并包括另一个php文件,具体取决于选择的页面。 (位于索引文件和配置文件所在的子目录中),我试图使用存储在配置文件中的连接信息来调用sql函数。但是,这不起作用,我不明白为什么。 Include本质上应该将所有代码放置在要包含的文件中,从哪个位置调用它?因此,在index.php中,第一个include应该将配置信息放在顶部,然后再向下放置它应该将来自另一个include的页面特定代码放置。为什么我的sql代码无法正常工作,除非我明确地将页面文件本身中的另一个include包含回配置文件中?完成此操作后,它会生效,但是随后我会收到重复代码的警告,例如启动会话。
index.php
<?php
// Attach Settings File
include 'admin_settings.php';
if(isset($_GET['page']))
{
$page = $_GET['page'];
// Appointment Manager
if($page == 'appointmentManager')
{
include 'includes/page_appointmentManager.php';
}
// Webmail
if($page == 'webmail')
{
include 'includes/page_webmail.php';
}
}
?>
admin_settings.php
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Start The Session
session_start();
ob_start();
// Website Time Zone
date_default_timezone_set('Australia/Brisbane');
$date = date('l d-m-Y');
$time = date('g:i A');
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DATABASE CONNECTION
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Host
$host = 'IP';
// User Name
$user = 'USER';
// Password
$password = 'PASSWORD';
// DB Name
$db_name = 'DATABASE';
////////////////////////////////////////////////////////
// Connection
$con = mysqli_connect($host,$user,$password,$db_name);
// Check Connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
page_appointmentManager.php
<h2>APPOINTMENT MANAGER</h2>
<table style="width:100%">
<tr>
<th>DATE</th>
<th>TIME</th>
<th>NAME</th>
<th>EMAIL</th>
<th>COMMENT</th>
</tr>
<?php
$sql = "SELECT * FROM tbl_appointments ORDER BY slimDate DESC, time DESC";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['date']?></td>
<td><?=$row['time']?></td>
<td><?=$row['name']?></td>
<td><?=$row['email']?></td>
<td><?=$row['comment']?></td>
</tr>
<tr>
<td colspan='2'>IP: <?=$row['client_ip']?></td>
<td colspan='3'>Browser</td>
</tr>
<?php
}
// Close Connection
mysqli_close($con);
?>
</table>
错误:
[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning: mysqli_query(): Couldn't fetch mysqli in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 13
[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 15
[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning: mysqli_close(): Couldn't fetch mysqli in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 32