gpt4 book ai didi

php - undefined variable 实际上被定义了吗?

转载 作者:行者123 更新时间:2023-11-29 03:53:53 25 4
gpt4 key购买 nike

我正在努力让一个简单的注册/登录表单发挥作用。我目前在访问与数据库的连接时遇到问题。我一直收到“ undefined variable ”。

这是我的连接代码:

<?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 声明“ undefined variable ”的唯一位置。我错过了什么吗?

这是网页中的两个错误:

  1. undefined variable :con
  2. 在非对象上调用成员函数 query()。

最佳答案

$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 关键字,但这是不好的做法,所以我不会在这里推荐它。

关于php - undefined variable 实际上被定义了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27537355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com