php – mysql_query()返回布尔值并导致mysql_fetch_assoc()失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – mysql_query()返回布尔值并导致mysql_fetch_assoc()失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1894字,纯文字阅读大概需要3分钟。
内容图文
![php – mysql_query()返回布尔值并导致mysql_fetch_assoc()失败](/upload/InfoBanner/zyjiaocheng/899/343f8fd9a34e4a658600eb288abfed06.jpg)
我正在为我的应用程序编写一个小的登录类,但是,我认为我的查询很糟糕,因为当我在查询结果上调用mysql_fetch_assoc()时,我收到此错误:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
我很熟悉mysql_fetch_assoc()是如何工作的,但我猜测对mysql_query()的调用返回false,这显然是一个布尔值,产生错误.
这是查询:
$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()返回布尔值并导致mysql_fetch_assoc()失败全部内容,希望文章能够帮你解决php – mysql_query()返回布尔值并导致mysql_fetch_assoc()失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。