gpt4 book ai didi

php - 函数内的 mysqli/mysql 查询不起作用

转载 作者:IT老高 更新时间:2023-10-29 00:15:21 25 4
gpt4 key购买 nike

我正在尝试为我的网站构建一些功能,其中一些包括从 mysql 数据库中获取数据。当我在函数之外测试代码时它似乎工作正常。就是这样,第一页:

require('db.php');
require('functions.php');

$email = 'sample@gmail.com';

if (user_exists($email) == true){
echo "Good news, this exists";
}

现在 db.php :

$db = new MySQLi("localhost","test","test","test");
if ($db->connect_errno){
echo "$db->connect_errno";
}

还有functions.php文件:

function sanitize ($data){
$db->mysqli_real_escape_string($data);
}
function user_exists($usermail){
$usermail = sanitize($usermail);
$query = $db->query("SELECT COUNT(userId) FROM users WHERE userEmail= '$usermail' ");
$check = $query->num_rows;
return ($check == 1) ? true : false;
}

我在访问第一个文件时遇到的错误是:

Notice: Undefined variable: db in C:\xampp\htdocs\auctior\inc\functions.php on line 6

Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\auctior\inc\functions.php on line 6

所以我需要/包含了 db.php,其中 $db 是 mysqli 连接。在同一个文件(第一个文件)中,我调用位于 functions.php 的函数

提前谢谢你,感谢您的帮助,因为这让我很生气......

最佳答案

您可能需要使用 global 关键字,否则 $db 将被视为局部范围内的 var。

function sanitize ($data){
global $db;
$db->mysqli_real_escape_string($data);
}

function user_exists($usermail){
global $db;
$usermail = sanitize($usermail);
$query = $db->query("SELECT COUNT(userId) FROM users WHERE userEmail= '$usermail' ");
$check = $query->num_rows;
return ($check == 1) ? true : false;
}

关于php - 函数内的 mysqli/mysql 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836078/

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