我再来一次! 我遇到了一个相当讨厌的问题,我很确定我做错了。
当我尝试通过PHP检查MYSQL数据库中是否已经存在用户名时,它会唠叨字符串是布尔值而不是变量。
这是PHP代码:
if (isset($_POST['Submit1']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
else if (isset($_POST['Submit2']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
else if (isset($_POST['Submit3']))
{
$username = $_POST['username'];
if(IsNameInUse($username)) header("Location: cselect.php?exist");
}
这是我的函数文件中的“IsNameInUse”:
function IsNameInUse($username)
{
$username = mysql_real_escape_string($username);
$query = mysql_query("SELECT COUNT(ID) FROM Accounts WHERE Username = '$username'");
return (mysql_result($query, 0) == 1) ? true : false;
}
我已经执行过:“echo $ username;”这清楚地表明字符串设置为$ username。它清楚地给了我输入的字符串。现在,老实说,我不知道为什么会出现以下错误:
[error] PHP Warning: mysql_result() expects parameter 1 to be resource, boolean given in /var/zpanel/hostdata/paradise/public_html/paradiseroleplay_com/includes/functions.php on line 7
所以在这里,我再一次,询问互联网的永无止境的知识。 问候, Heartfire。
编辑修好了。 “抱歉这个。死于mysql错误,清楚地表明我是多么愚蠢。我忘了对于账号,我把它设为”AccID“而不是”ID“......多亏了一堆,现在就解决了。” 关于DTO,好的一点 - Will会这样做。
答案 0 :(得分:0)
问题是在第7行的functions.php中(你也可以发布这一行)php想要资源到数据库。
e.g。在这种情况下,$ link将是资源:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
此外,您正在函数内运行mysql函数,请阅读此文章以获取更多信息: How to put mysql inside a php function?
希望这会有所帮助。如果没有,请提供函数行.php