帮我这个代码:我收到这个错误 .
注意:未定义的变量:第5行的C:\ xampp \ htdocs \ Project \ core \ functions \ general.php中的dbCon
警告:mysqli_real_escape_string()期望参数1为mysqli,在第5行的C:\ xampp \ htdocs \ Project \ core \ functions \ general.php中给出null
注意:未定义的变量:第5行的C:\ xampp \ htdocs \ Project \ core \ functions \ Users.php中的dbCon
警告:mysqli_query()要求参数1为mysqli,在第5行的C:\ xampp \ htdocs \ Project \ core \ functions \ Users.php中给出null
致命错误:未捕获错误:在C:\ xampp \ htdocs \ Project \ core \ functions \ Users.php中调用未定义函数mysqli_result():8堆栈跟踪:#0 C:\ xampp \ htdocs \ Project \ login.php( 4):在第8行的C:\ xampp \ htdocs \ Project \ core \ functions \ Users.php中抛出user_exists(NULL)#1
主文件夹(名称 - > 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]
对不起凌乱的方式,这是树视图:
感谢你的帮助
4 回答
这里有一些问题 .
首先,您有一个可变范围问题,并且您在查询中使用错误的identifier qualifiers是常规引号:
所以,删除这个引号:
或使用刻度:
一旦它被解雇,使用
mysqli_error($dbCon)
http://php.net/manual/en/mysqli.error.php检查它上面的错误就会抛出一些关于它的东西 .在
user_exists()
函数中使您的连接全局化阅读两者:
标识符限定符http://dev.mysql.com/doc/en/identifier-qualifiers.html
变量范围http://php.net/manual/en/language.variables.scope.php
连接变量未在函数范围中定义 . 修复程序是使用“全局”构造添加它 .
您正在尝试在函数user_exists中使用局部变量$ dbCon .
您可以将该变量更改为全局变量
例如:
在php / core / database connect.php下:
在php / core / functions下用户.php:
问题是
$dbCon
未在任何函数的范围内定义 . 你可以做3件事:但是,在像这样的函数中使用全局变量通常是一种糟糕的编码风格 . 我建议做类似以下的事情:
我正准备添加你的SQL语法问题,但弗雷德打败了我 . 我想你想要反叛,而不是
'
.