Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值传递给类php_Php_Mysql_Class - Fatal编程技术网

将值传递给类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 更新 <?

这是我的代码,我不断遇到错误,我不知道如何解决。我希望你们做到了

这就是错误所在

警告: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);
    ...