gpt4 book ai didi

PHP - Mysqli 错误

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

当我访问网站 URL 时,我收到此“Mysqli 错误”。这是页面上显示的唯一文本。我读到它与 mysqli() 函数有关。我已将 or die("Error ".mysqli_error($GLOBALS['mysqli_connection']) 添加到某些 mysqli() 中,但这并没有解决问题。这是我拥有的唯一 PHP 文件的代码这些功能:

<?php
require_once 'config.php';

class DB_Functions_GCM {

//put your code here
// constructor
function __construct() {
// connecting to database
$GLOBALS['mysqli_connection'] = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("Mysqli Error " . mysqli_error($GLOBALS['mysqli_connection']));

}

// destructor
function __destruct() {

}

public function connectDefaultDatabase() {

$GLOBALS['mysqli_connection'] = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("Mysqli Error " . mysqli_error($GLOBALS['mysqli_connection']));
return $GLOBALS['mysqli_connection'];
}

public function selectDatabase($db) {
mysqli_select_db($GLOBALS['mysqli_connection'], $db);
}

public function closeDatabase() {
mysqli_close($GLOBALS['mysqli_connection']);
}

public function connectNewDatabase($host, $user, $password, $dbname = "") {
closeDatabase();

if ($dbname != "" && $dbname != null) {
$GLOBALS['mysqli_connection'] = mysqli_connect($host, $user, $password, $dbname) or die("Mysqli Error " . mysqli_error($GLOBALS['mysqli_connection']));
} else {$GLOBALS['mysqli_connection'] = mysqli_connect($host, $user, $password) or die("Mysqli Error " . mysqli_error($GLOBALS['mysqli_connection']));
}

return $GLOBALS['mysqli_connection'];
}
/**
* Storing new user
* returns user details
*/

/**
* Get user by email and password
*/
public function getUserByEmail($email) {
$result = mysqli_query($GLOBALS['mysqli_connection'], "SELECT * FROM gcm_users WHERE email = '$email' LIMIT 1");
return $result;
}

public function getUserByName($username) {
$result = mysqli_query($GLOBALS['mysqli_connection'], "SELECT * FROM gcm_users WHERE name = '$username' LIMIT 1");
return $result;
}

public function getUserById($id) {
$result = mysqli_query($GLOBALS['mysqli_connection'], "SELECT * FROM gcm_users WHERE id = '$id' LIMIT 1");
return $result;
}

/**
* Getting all users
*/
public function getAllUsers() {
$result = mysqli_query($GLOBALS['mysqli_connection'], "select * FROM gcm_users");
return $result;
}

/**
* Check user exists or not
*/
public function checkUserById($id) {
$result = mysqli_query($GLOBALS['mysqli_connection'], "SELECT gcm_regid from gcm_users WHERE gcm_regid = '$id'");
$no_of_rows = mysqli_num_rows($result);
if ($no_of_rows > 0) {
return true;
} else {
return false;
}
}

public function deleteUserById($id) {
$result = mysqli_query($GLOBALS['mysqli_connection'], "DELETE FROM gcm_users WHERE gcm_regid = '$id'");
if ($result) {
return true;
} else {
return false;
}

}

public function storeUser($gcm_regid, $instanceId, $name, $email) {
echo "$gcm_regid";
// insert user into database
$result = mysqli_query($GLOBALS['mysqli_connection'], "INSERT INTO gcm_users(name, email, gcm_instance_id, gcm_regid, created_at) VALUES('$name', '$email', '$instanceId', '$gcm_regid', NOW())");

// check for successful store
if ($result) {
// get user details
$id = mysqli_insert_id($GLOBALS['mysqli_connection']);
// last inserted id
$result = mysqli_query($GLOBALS['mysqli_connection'], "SELECT * FROM gcm_users WHERE id = $id") or die("Error " . mysqli_error($GLOBALS['mysqli_connection']));
// return user details
if (mysqli_num_rows($result) > 0) {
return mysqli_fetch_array($result);
} else {
return false;
}
} else {
return false;
}
}

}
?>

我在这里做错了什么?有什么建议么?

最佳答案

如果 mysqli连接失败,返回值为boolean FALSE ,并且不能用作 mysqli_error() 的参数。这就是为什么有 mysqli_connect_error() 。例如

$con = mysqli_connect([..snip..]) or die (mysqli_error($con));

想一想。 $con只能在整个右侧操作完成后才能获取值。但你正在尝试使用 $con在右侧,这是不可能的。 PHP 不能/不会进行时间旅行。代码应该是

$con = mysqli_connect(...) or die(mysqli_connect_error());

错误#2:

您正在定义一个对象。为什么要返回 mysqli 句柄并将其保存为 PHP 全局变量?这意味着您一次只能打开一个数据库连接,因为对象的任何其他实例都将简单地覆盖/使用同一全局变量。为什么不将句柄存储在对象中?

public function dbconn() {
$this->dbh = mysqli_connect(...) or die(mysqli_connect_error());
}

public function do_db_stuff()
mysqli_query($this->dbh, "SELECT blah blah blah");
}

关于PHP - Mysqli 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379593/

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