【发布时间】:2012-08-25 00:23:55
【问题描述】:
无论如何,我都无法弄清楚我的代码中出现此错误的原因:
mysql_fetch_assoc(): 提供的参数不是有效的 MySQL 结果资源
这是我的 PHP 代码:
<?php
$session_id = $_SESSION['id'];
$getall = mysql_query("SELECT * FROM users WHERE id='' . $dbuser_id . ''");
$row = mysql_fetch_assoc($getall);
$fullnameDB = $row['name'];
$emailDB = $row['email'];
$usernameDB = $row['username'];
$fullname = strip_tags($_POST['fullname']);
$username = strip_tags($_POST['username']);
$email = strip_tags($_POST['email']);
if ($_POST['submit']) {
$namecheck = mysql_query("SELECT username FROM users WHERE username='' . $username . ''");
$count = mysql_num_rows($namecheck);
if ($count !=0) {
echo 'That username is already taken!';
} else {
mysql_query("UPDATE users SET username=' . $username . ' WHERE id='' . $dbuser_id . ''");
echo 'Your UN has been updated';
}
}
?>
【问题讨论】:
-
警告您的代码可能容易受到 sql 注入攻击!
-
因为您的报价不匹配?您以双引号开头,并试图以两个撇号结尾。
-
请改进您的标题以匹配您的问题。请在此处发布您的相关代码。
-
请不要将
mysql_*函数用于新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果您不能决定,this article 将帮助您选择。如果你想学习,here is a good PDO tutorial.