当前位置: 首页 > 知识库问答 >
问题:

如何在其他php文档中传递连接变量

陆才俊
2023-03-14

帮助我使用这段代码:我得到这个错误。

注意:第5行C:\xampp\htdocs\project\core\functions\general.php中未定义的变量:dbCon

警告:mysqli_real_escape_string()要求参数1为mysqli,null在C:\xampp\htdocs\project\core\functions\general.php第5行中给出

注意:第5行C:\xampp\htdocs\project\core\functions\users.php中未定义的变量:dbCon

警告:mysqli_query()要求参数1为mysqli,null在C:\xampp\htdocs\project\core\functions\users.php第5行中给出

错误:未捕获错误:调用C:\xampp\htdocs\project\core\functions\users.php中未定义的函数mysqli_result():8堆栈跟踪:#0 C:\xampp\htdocs\project\core\functions\project\login.php(4):user_exists(NULL)#1{main}在C:\xampp\htdocs\project\core\functions\users.php第8行抛出

主文件夹(名称->PHP)有index.PHP:

    <?php 
include 'core/init.php';
include 'includes/overall/header.php';
?>

PHP文件夹具有login.PHP:

 <?php
include 'core/init.php';

if(user_exists('sudin') === true)
{
    echo 'exists';
}
?>

在php/core文件夹init.php下:

<?php
session_start();

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
?>

在php/core/database connect.php下:

<?php
$dbCon=mysqli_connect('localhost','root','','project_point');

?>

在php/core/functions users.php下:

<?php
function user_exists($username)
{
    $username = sanitize($username);
    $query = mysqli_query($dbCon,"SELECT COUNT('Login_ID')FROM 'login' WHERE 'Username' = '$username'");
    return(mysqli_result($query,0)==1) ? true : false;
}
 ?>

在php/core/functions general.php下:

<?php

function sanitize($data)
{
    return mysqli_real_escape_string($dbCon,$data);
}
?>[enter image description here][1]

抱歉,这里是树状视图:

感谢你的帮助

共有3个答案

巩衡
2023-03-14

您试图在函数user_exists中使用局部变量$dbcon。

您可以将该变量更改为全局变量

例:

在php/core/database connect.php下:

<?php
global $dbCon;
$dbCon=mysqli_connect('localhost','root','','project_point');

?>

在php/core/functions users.php下:

<?php
function user_exists($username)
{
    global $dbCon;
    $username = sanitize($username);
    $query = mysqli_query($dbCon,"SELECT COUNT('Login_ID')FROM 'login' WHERE 'Username' = '$username'");
    return(mysqli_result($query,0)==1) ? true : false;
}
 ?>
蔺昊穹
2023-03-14

未在函数作用域中定义连接变量。修补程序是将其添加到“全局”构造中。

function user_exists($username)
{
global $dbCon;
...
慕容星晖
2023-03-14

这里有几件事不对。

首先,您有一个变量范围问题,并且您在查询中使用了错误的标识符限定符(常规引号):

因此,请删除以下内容的引号:

SELECT COUNT('Login_ID')FROM 'login' WHERE 'Username'
             ^        ^      ^     ^       ^        ^ Remove those

或使用刻度:

SELECT COUNT(`Login_ID`) FROM `login` WHERE `Username`

使用mysqli_error($dbcon)http://php.net/manual/en/mysqli.error.php检查它的错误,一旦它被激发,就会给您带来一些信息。

user_exists()函数中使连接全局化

global $dbCon;

仔细阅读以下两方面的内容:

>

  • 标识符限定符http://dev.mysql.com/doc/en/identifier-qualifier.html

    变量作用域http://php.net/manual/en/language.variables.scope.php

  •  类似资料:
    • 问题内容: 我已经解决了这个问题好几个小时,并且取得了长足的进步(在很大程度上要感谢搜索本网站并应用在类似问题中发现的技巧),但是现在看来我陷入了僵局。请浏览一下我所做的事情,或者指出我做错了什么地方,并提供伪代码进行更正,或者为我提供可以弥补我的理解空白的资源。我真的感觉好像我只是缺少一个微小的细节,使这个话题对我来说很有意义。 该应用程序的目的是根据用户输入的2个分子和2个分母来添加,减去,乘

    • 问题内容: 我认为在理解OOP的工作方式方面存在问题。我已经更改了它可以工作的代码,但这不是我认为的正确方法。以下情况(不,我不是自己创建用户登录,实际上只是为了让本地开发人员更好地理解OOP): 我有一个database.php文件: 因此,在此类中,我正在创建数据库连接,然后返回连接(对象?) 然后,我有第二个类,著名的User类(实际上,我没有使用自动加载功能,但是我知道): 那是我的两堂课

    • 我想我在理解OOP是如何工作的方面遇到了一个问题。我已经改变了它的工作代码,但它不是我认为的支持方式。下面的场景(不,我不是自己创建一个用户登录,它实际上只是为了让本地开发人员更好地理解OOP): 我有一个database.php文件: 因此,在这个类中,我创建了一个数据库连接,并返回该连接(对象?) 然后我有第二个类,著名的User类(其实我没有在使用autoload,但我知道它): 这是我的两

    • 我想我在理解OOP是如何工作的方面遇到了一个问题。我已经改变了它的工作代码,但它不是我认为的支持方式。下面的场景(不,我不是自己创建一个用户登录,它实际上只是为了让本地开发人员更好地理解OOP): 我有一个database.php文件: 因此,在这个类中,我创建了一个数据库连接,并返回该连接(对象?) 然后我有第二个类,著名的User类(其实我没有在使用autoload,但我知道它): 这是我的两

    • 本文向大家介绍如何将JavaScript变量传递给PHP?,包括了如何将JavaScript变量传递给PHP?的使用技巧和注意事项,需要的朋友参考一下 您可以在PHP的同一页面上轻松获取JavaScript变量值。尝试以下代码L。

    • 问题内容: 我有一个返回散列的javascript函数。我需要将此哈希传递给php来进行处理。最好的方法是什么? 问题答案: 假设您的意思是 JavaScript 函数返回哈希并将其发送给PHP- 然后是AJAX