出于安全原因,我创建了一个连接文件,该文件存储在 wwwroot
上方的文件夹中。
$con = mysqli_connect("localhost","USERNAME","PASSWORD","DBNAME");
我只想在 header.php
中包含一次,以便它可以在所有文件中全局使用。
我试过:
include(dirname(__FILE__) . '/../../connect.php')
但是,我必须在每个文件中包含 connect.php
文件,否则它会说我的 $con
对象不是对象。我不知道这是否与变量范围有关 - 但如果我在每个其他文件中包含 header.php
,它不应该可用吗?
我不断收到此错误:
Fatal error: Call to a member function query() on a non-object
如果有人知道为什么,我们将不胜感激!
编辑:
在 $con
前面加上 global 并不能解决这个问题。
唯一会影响它的其他代码是:
<?php include 'includes/header.php'; ?>
我尝试将它用于:
class CommentFunctions{
//include_once(dirname(__FILE__) . '/../../connect.php');
public static function getUserData($userId){
$result = $con->query("SELECT name,image
FROM USERS where userID = ".$userId);
if($result){
if(mysqli_num_rows($result) == 1){
return mysqli_fetch_array($result);
}
}
return null;
}
它本身位于includes/comments.php
最佳答案
在 $con 上面添加:
global $con;
如果这没有帮助,请粘贴更大的代码块。
在更新后的代码中,您遇到了范围问题。在方法中添加全局 $con 并解决问题。
global $con;
$result = $con->query("SELECT name,image
关于php - 在php中连接到数据库并包含一次,但连接文件不在根目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563369/