这个问题把我难住了。即使当我在phpmyadmin中检查数据库时,查询成功地插入到数据库中,我也会收到这个错误。所以我知道这个查询是通过的,并且不是假的。我想做的是注册一个用户,如果返回了一个结果,则返回要检查的true或false,即如果结果存在,则继续。我班上的代码;
class registerUser {
function register($email,$password) {
$query = "insert into users(email,password) values('".$email."','".$password."')";
$result = mysql_query($query) or die("Could not enter the user into the database".mysql_error());
return mysql_affected_rows($result);
}
function checkPasswords($password1,$password2) {
if($password1 == $password2) {
return true;
}
else {
return false;
}
}
}
使用类的文件:
include('../data/connection.php');
include('../data/registerUser.php');
$connect = new connection();
$connect->connect($con, $db);
$register = new registerUser();
$checkPass = $register->checkPasswords($_POST['regpass'],$_POST['confirm']);
if($checkPass) {
$reg = $register->register($_POST['regemail'],$_POST['regpass']);
if($reg) {
session_start();
$_SESSION['id'] = $_POST['email'];
$connect->close($con);
header("Location:dashboard.php");
} else {
// Failure - message
echo "Registration not successful, contact Administrator";
}
} else {
echo "Passwords do not match";
}
它似乎从未通过registerUser中的register函数,并在mysql_query中执行die消息,但在phpMyAdmin中检查时插入是成功的。我做错了什么?非常感谢您的帮助!!
return mysql_affected_rows($result);
要修复它,请删除参数$result
:
return mysql_affected_rows();
http://php.net/mysql_query
- mysql"不受欢迎",建议使用mysqli或PDO
- 插入时的mysql_query返回布尔值
从http://php.net/mysql_affected_rows
它所期望的资源是DB链接,而不是查询结果。如果只有一个到数据库的连接,则该参数是可选的。
此外,您可能希望添加输入转义来处理sql注入。
尝试传递连接变量,如mysqli_affected_rows($conn);这里$conn是我的连接变量