gpt4 book ai didi

php - mysql_query() 返回 bool 值并导致 mysql_fetch_assoc() 失败

转载 作者:可可西里 更新时间:2023-11-01 07:49:47 25 4
gpt4 key购买 nike

我正在为我的应用程序编写一个小型登录类,但是,我认为我的查询很糟糕,因为当我在结果 上调用 mysql_fetch_assoc() 时的查询,我得到这个错误:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

我熟悉 mysql_fetch_assoc() 的工作原理,但我猜测对 mysql_query() 的调用返回 false,这显然是一个 bool 值,产生错误。

这是查询:

$loginsql = 'SELECT userid, username, password FROM users WHERE username=\'. $username .\' AND password=\'. $password .\'';

注意:我意识到在 PHP 中设置的“mysql_”函数从 5.5 开始已被弃用,但我使用的是 5.3.8 并且只是练习。稍后我将使用 PDO 重构应用程序。

classes.php

<?php

class connectToDb {
function dbConnect($config) {
$connection = mysql_connect($config['host'], $config['dbuser'], $config['dbpass']);
if ($connection) {
mysql_select_db($config['db'], $connection);
} else {
echo "Could not connect to database!";
}
}
}

class registerAccount {
function doRegister($regusername, $regpassword, $regemail) {
$regsql = "INSERT INTO users (username, password, email) VALUES ('$regusername', '$regpassword', '$regemail')";
if (mysql_query($regsql)) {
echo "Successfully registered!";
} else {
echo "Problem with registration!";
}
}
}

class loginAccount {
function doLogin($username, $password) {
mysql_real_escape_string($username);
mysql_real_escape_string($password);

hash('sha256', $password);

$loginsql = 'SELECT userid, username, password FROM users WHERE username=\'. $username .\' AND password=\'. $password .\'';

$result = mysql_query($loginsql) or die(mysql_error());

$loginrow = mysql_fetch_assoc($result);
if ($loginrow) {
$_SESSION['username'] = $loginrow['username'];
$_SESSION['userid'] = $loginrow['userid'];
} else {
echo "Incorrect username and/or password!";
}
}
}

最佳答案

mysql_query() 如果有错误则返回 false。如果它返回 false,您可以使用 mysql_error() 获取错误消息,这应该会提示您查询出了什么问题。

这就是为什么您过去常常看到很多这样的样式查询:

$result = mysql_query('SELECT foo FROM bar') or die(mysql_error());

关于php - mysql_query() 返回 bool 值并导致 mysql_fetch_assoc() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415394/

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