将值传递给类php
这是我的代码,我不断遇到错误,我不知道如何解决。我希望你们做到了 这就是错误所在 警告:mysql_num_rows()要求参数1为资源,布尔值 在上的C:\xampp\htdocs\myPHPWebsite\include\classRegister.php中给出 第17行 可捕获的致命错误:无法捕获类RegisterUser的对象 在中转换为字符串 第21行的C:\xampp\htdocs\myPHPWebsite\include\classRegister.php 更新将值传递给类php,php,mysql,class,Php,Mysql,Class,这是我的代码,我不断遇到错误,我不知道如何解决。我希望你们做到了 这就是错误所在 警告:mysql_num_rows()要求参数1为资源,布尔值 在上的C:\xampp\htdocs\myPHPWebsite\include\classRegister.php中给出 第17行 可捕获的致命错误:无法捕获类RegisterUser的对象 在中转换为字符串 第21行的C:\xampp\htdocs\myPHPWebsite\include\classRegister.php 更新 <?
<?php
class RegisterUser{
var $email;
var $password;
var $password_hash;
var $roleid;
public function __construct($email, $password, $roleid){
$this->email = $email;
$this->password = $password;
$this->roleid = $roleid;
$this->addUsertoDB();
}
public function addUsertoDB(){
$this->password_hash = md5($this->password);
$checkemail = mysql_query("SELECT * FROM users WHERE (email ='" . mysql_real_escape_string($this->email) . "')");
if(mysql_num_rows($checkemail) == 1){
echo '<script type="text/javascript"> alert ("Email already used!");</script>';
}
else{
$register = "INSERT INTO users(email, password, roleid) VALUES('$this->email', '$this->password_hash', '$this->$roleid')";
if($query_run = mysql_query($register)){
echo('<scrip type="text/javascript"> alert("Registration complete!"); location.replace("login")</script>');
}
else{
die('<script type="text/javascript"> alert("Error inserting data!");</script>');
}
}
}
}
$connect = new RegisterUser('carloadap@htomail.com', 123, 1);
?>
这就是我得到的错误
连接到数据库!
可捕获的致命错误:无法将类RegisterUser的对象转换为第22行C:\xampp\htdocs\myPHPWebsite\include\classRegister.php中的字符串
第一个错误是由MySQL中的某些错误引起的。尝试加入
if($e=mysql_error())死亡(“mysql error:.$e)代码>在查询之后
除此之外,您可捕获的致命错误是由于错误地将$this->roleid
编写为$this->$roleid
。还要注意,您无法转义该行上的字符串,因此很容易受到注入的影响。仅保护第一个查询是不够的,您必须每次都这样做;) 请填写您给我们的错误
<?php
require 'connectDB.php';
class RegisterUser{
var $email;
var $password;
var $password_hash;
var $roleid;
public function __construct($email, $password, $roleid){
$this->email = $email;
$this->password = $password;
$this->roleid = $roleid;
$this->addUsertoDB();
}
public function addUsertoDB(){
$this->password_hash = md5($this->password);
$checkemail = mysql_query("SELECT * FROM users WHERE (email ='" . mysql_real_escape_string($this->email) . "')");
if(mysql_num_rows($checkemail) == 1){
echo '<script type="text/javascript"> alert ("Email already used!");</script>';
}
else{
$register = "INSERT INTO users(email, password, roleid) VALUES('$this->email', '$this->password_hash', '$this->$roleid')";
if($query_run = mysql_query($register)){
echo('<scrip type="text/javascript"> alert("Registration complete!"); location.replace("login")</script>');
}
else{
die('<script type="text/javascript"> alert("Error inserting data!");</script>');
}
}
}
}
$connect = new RegisterUser('carloadap@htomail.com', 123, 1);
?>
似乎$checkmail
值无效mysql\u num\u rows()
result。检查查询,并尝试在数据库控制台上运行它(如果使用phpmyadmin)
我更新了问题你没有纠正我告诉你的任何一件事。。。
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
C:\xampp\htdocs\myPHPWebsite\include\classRegister.php on line 17
public function addUsertoDB(){
...
$query = "SELECT * FROM users WHERE (email ='" . mysql_real_escape_string($this->email) . "')";
checkemail = mysql_query($query) or die(mysql_errno() . " : " . mysql_error() . " : " . $query);
...