我有这个错误显示:注意:未定义的变量:第4行中D:''examplep''htdocs''website''core''functions''users.php中的conn
致命错误:在第4行的D:''examplep''htdocs''website''core''functions''users.php中的null处调用成员函数query()
这是连接数据库
connect.php
<?php
$servername = "localhost";
$user = "root";
$passwd = "";
$dbname = "userdata";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $user, $passwd);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exc) {
die($exc->getMessage());
}
?>
在这部分我有的问题
users.php
<?php
function user_exists($username){
$sql ="SELECT COUNT('id') FROM users where username = '$username'";
$query = $conn->query($sql);
$result = $query->fetchAll(PDO::FETCH_ASSOC);
if(count($result)){
$res = 0;
}else {
$res = 1;
}
return $res;
}
?>
这就是我将users.php与connect.php 连接起来的地方
init.php
<?php
session_start();
require 'database/connect.php';
require 'functions/users.php';
require 'functions/general.php';
$errors = array();
?>
这是一个可变范围的问题。
因为$conn
是在函数外部设置/声明的,所以在函数的内部不能访问它。
修改您的功能如下:
function user_exists($username){
// This gets you access to the $conn variable inside the function.
global $conn;
$sql ="SELECT COUNT('id') FROM users where username = '$username'";
$query = $conn->query($sql);
$result = $query->fetchAll(PDO::FETCH_ASSOC);
if(count($result)){
$res = 0;
}else {
$res = 1;
}
return $res;
}