php - 在php中连接到数据库并包含一次,但连接文件不在根目录中

标签 php mysql database include connection

出于安全原因,我创建了一个连接文件,该文件存储在 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/

相关文章:

mysql - Laravel 新手和外部 (Moodle) 数据库

javascript - 地理哈希 : How to calculate the eight surrounding boxes

php - MySqli : num_rows of grouped by hour()

mysql - mysql for django 1.8安装错误

mysql - MySql 字段列表中的未知列

php - 如果我使用终端在 MySQL 中创建一个数据库,它应该显示在我的 PhpMyAdmin 数据库下吗?

php - 测试 Doctrine EntityManager 写入失败

php - 在 Woocommerce 3 中获取每个订单商品的税标

一个 mysql_query() 查询中的 PHP 多个 MYSQL 命令

jquery - 使用 Coldfusion 捕获动态表单字段