[英]Undefined Variable Is Actually Defined?
我正在努力获取一个简单的注册/登录表格。 我目前在访问数据库连接时遇到问题。 我不断收到“未定义的变量”。
这是我的连接代码:
<?php
$hostName = 'localhost';
$userName = 'root';
$userPass = '';
$database = 'test';
$con = new mysqli($hostName, $userName, $userPass, $database);
if($con->connect_errno){
printf("Connect failed...");
exit();
}
通过将其包含在我的php文件中,我是否应该无法访问$ con? 还是每次访问文件都必须重新定义连接?
根据我的经验,我不必重新定义它,因此我对此表示怀疑。 这是使它跳闸的功能。
<?php
include 'user-functions.php';
include 'connect.php';
function checkDuplicateEmail($email){
$query = "SELECT `playerEmail` FROM `players` WHERE `playerEmail` = '$email'";
$result = $con->query($query);
if($result->num_rows > 1){
addError("Duplicate email: " . $email);
return True;
}
return False;
}
function checkDuplicateUserName($userName){
$query = "SELECT `playerName` FROM `players` WHERE `playerName` = '$userName'";
$result = $con->query($query);
if($result->num_rows > 1){
addError("Duplicate username: " . $userName);
return True;
}
return False;
}
?>
现在,这是$ con唯一表示“未定义变量”的位置。 我想念什么吗?
这是网页中的两个错误:
$con
在全局范围内,不能用于您的函数。 您需要将其作为参数传递给函数中的代码才能访问它:
function checkDuplicateEmail($email, $con){
$query = "SELECT `playerEmail` FROM `players` WHERE `playerEmail` = '$email'";
$result = $con->query($query);
if($result->num_rows > 1){
addError("Duplicate email: " . $email);
return True;
}
return False;
}
$var = checkDuplicateEmail($email, $con);
您也可以使用global
关键字,但这是一种不好的做法,因此在此不推荐使用。
这是一个范围界定问题。 将$con
定义为全局变量,或将其作为参数传递给需要它的每个函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.