我创建了一个包含函数的类,该函数使用mysqli。但当我叫它使用时,它不起作用。
这是我的代码
连接
dbconfig.php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'xxxx');
define('DB_DATABASE', 'sample_db');
define('PORT', '80');
define('SOCKET', '/var/lib/mysql/mysql.sock');
$connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE, PORT, SOCKET) or die("Error " . mysqli_error($connection));
mysqli_set_charset($connection, "utf8");
类别用户
class.php
include('dbconfig.php');
class User{
function checkUser($ID, $U_Name){
$query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'")
or die(mysqli_error($connection));
$result = mysqli_fetch_array($query, MYSQLI_ASSOC);
if (!empty($result)) {
# User is already present
$query = mysqli_query($connection, "UPDATE user SET U_Name = '$U_Name'
WHERE ID = '$ID'") or die(mysqli_error($connection));
$query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'");
$result = mysqli_fetch_array($query, MYSQLI_ASSOC);
return $result;
}
else{
#user not present. Insert a new Record
}
return $result;
}
}
调用代码
include('dbconfig.php');
include('class.php');
$uid = $user_info->id; //1280
$user_name = $user_info->name; //Mr. AAAA
$user = new User();
if($uid != "" && $uid != null){
$userdata = $user->checkUser($uid, $user_name);
if(!empty($userdata)){
//do something
}
}
你能帮我解决这个问题吗?
提前感谢!
这将修复它:使变量可以通过global
在此范围内访问。
class User{
function checkUser($ID, $U_Name){
global $connection;
// ...
}
}
点击此处阅读更多信息:http://php.net/manual/en/language.variables.scope.php
在每个函数中重新声明连接变量以使用like或
function checkUser($ID, $U_Name){
global $connection;
$query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'")
or die(mysqli_error($connection));
$result = mysqli_fetch_array($query, MYSQLI_ASSOC);
if (!empty($result)) {
# User is already present
$query = mysqli_query($connection, "UPDATE user SET U_Name = '$U_Name'
WHERE ID = '$ID'") or die(mysqli_error($connection));
$query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'");
$result = mysqli_fetch_array($query, MYSQLI_ASSOC);
return $result;
}
else{
#user not present. Insert a new Record
}
return $result;
}