Php 需要数据库输入帮助吗

Php 需要数据库输入帮助吗,php,mysql,database,pdo,Php,Mysql,Database,Pdo,嘿,我做了一个pdo注册表系统-但我用了三个类代替-但我没有让它插入电子邮件/密码到注册表-它只是进入一个空白屏幕,没有输入 下面是3个类的代码: connect.php <?php class Connect{ public function dbConnex(){ return new PDO("mysql:host=localhost; dbname=demodatabase", "root","password"); } } ?> <?php incl

嘿,我做了一个pdo注册表系统-但我用了三个类代替-但我没有让它插入电子邮件/密码到注册表-它只是进入一个空白屏幕,没有输入

下面是3个类的代码:

connect.php

<?php
class Connect{
  public function dbConnex(){
    return new PDO("mysql:host=localhost; dbname=demodatabase", "root","password");
  }
}
?>
<?php
include_once('Connect.php');
class Header{
  public $odb;

  public function __construct(){
    $this->odb = new Connect();
    $this->odb = $this->db->dbConnex();
  }

  public function Register($first_name, $last_name, $email_id, $password){
    if(isset($_POST['first_name'])){
      $first_name = $_POST['first_name'];
      $last_name = $_POST['last_name'];
      $email_id = $_POST['email_id'];
      $password = $_POST['password'];
      $q = "INSERT INTO demoregi(first_name, last_name, email_id, password) VALUES(:first_name, :last_name, :email_id, :password);";
      $query = $odb->prepare($q);
      $results =    $query->execute(array(
            ":first_name" => $first_name,
            ":last_name" => $last_name,
            ":email_id" => $email_id,
            ":password" => $password
      ));
    }
  } 
}   
?>
<?php
include_once('Header.php');
if(isset($_POST['submit'])){
    $first_name= $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_id = $_POST['email_id'];
    $password = $_POST['password'];
    $object = new Header();
    $object -> Register($first_name, $last_name,$email_id,$password);
}
?>

<html>
<head>
</head>
<body>
    <form method="post" action="header.php">
        <br>First Name: <input type="text" id="first_name" name="first_name"/></br>
        <br>Last Name: <input type="text" id= "last_name" name="last_name"/></br>
        <br>Email: <input type="text" id="email_id" name="email_id"/></br>
        <br>Password: <input type="password" id= "password" name="password"/></br>
        <input type="submit" name="submit" value="Register"/>
    </form>
</body>
</html>

Header.php

<?php
class Connect{
  public function dbConnex(){
    return new PDO("mysql:host=localhost; dbname=demodatabase", "root","password");
  }
}
?>
<?php
include_once('Connect.php');
class Header{
  public $odb;

  public function __construct(){
    $this->odb = new Connect();
    $this->odb = $this->db->dbConnex();
  }

  public function Register($first_name, $last_name, $email_id, $password){
    if(isset($_POST['first_name'])){
      $first_name = $_POST['first_name'];
      $last_name = $_POST['last_name'];
      $email_id = $_POST['email_id'];
      $password = $_POST['password'];
      $q = "INSERT INTO demoregi(first_name, last_name, email_id, password) VALUES(:first_name, :last_name, :email_id, :password);";
      $query = $odb->prepare($q);
      $results =    $query->execute(array(
            ":first_name" => $first_name,
            ":last_name" => $last_name,
            ":email_id" => $email_id,
            ":password" => $password
      ));
    }
  } 
}   
?>
<?php
include_once('Header.php');
if(isset($_POST['submit'])){
    $first_name= $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_id = $_POST['email_id'];
    $password = $_POST['password'];
    $object = new Header();
    $object -> Register($first_name, $last_name,$email_id,$password);
}
?>

<html>
<head>
</head>
<body>
    <form method="post" action="header.php">
        <br>First Name: <input type="text" id="first_name" name="first_name"/></br>
        <br>Last Name: <input type="text" id= "last_name" name="last_name"/></br>
        <br>Email: <input type="text" id="email_id" name="email_id"/></br>
        <br>Password: <input type="password" id= "password" name="password"/></br>
        <input type="submit" name="submit" value="Register"/>
    </form>
</body>
</html>

Index.php

<?php
class Connect{
  public function dbConnex(){
    return new PDO("mysql:host=localhost; dbname=demodatabase", "root","password");
  }
}
?>
<?php
include_once('Connect.php');
class Header{
  public $odb;

  public function __construct(){
    $this->odb = new Connect();
    $this->odb = $this->db->dbConnex();
  }

  public function Register($first_name, $last_name, $email_id, $password){
    if(isset($_POST['first_name'])){
      $first_name = $_POST['first_name'];
      $last_name = $_POST['last_name'];
      $email_id = $_POST['email_id'];
      $password = $_POST['password'];
      $q = "INSERT INTO demoregi(first_name, last_name, email_id, password) VALUES(:first_name, :last_name, :email_id, :password);";
      $query = $odb->prepare($q);
      $results =    $query->execute(array(
            ":first_name" => $first_name,
            ":last_name" => $last_name,
            ":email_id" => $email_id,
            ":password" => $password
      ));
    }
  } 
}   
?>
<?php
include_once('Header.php');
if(isset($_POST['submit'])){
    $first_name= $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_id = $_POST['email_id'];
    $password = $_POST['password'];
    $object = new Header();
    $object -> Register($first_name, $last_name,$email_id,$password);
}
?>

<html>
<head>
</head>
<body>
    <form method="post" action="header.php">
        <br>First Name: <input type="text" id="first_name" name="first_name"/></br>
        <br>Last Name: <input type="text" id= "last_name" name="last_name"/></br>
        <br>Email: <input type="text" id="email_id" name="email_id"/></br>
        <br>Password: <input type="password" id= "password" name="password"/></br>
        <input type="submit" name="submit" value="Register"/>
    </form>
</body>
</html>


名字:

姓氏:

电邮:

密码:
那么我如何让它将数据输入数据库呢?我没有收到任何错误消息-只是一个空白屏幕,注册按钮会将我重定向到该屏幕


这个问题的简单解决方案。我想要一些帮助!万分感谢

有几件事需要指出

  • 当您提交表单的代码位于index.php上时,表单会将页面重定向到header.php(我认为这是这里的主要问题。然后您可能会出现错误)
  • 在类标题中。函数寄存器向它们传递了$first\U name、$last\U name、$email\U id、$password,那么当$first\U name被传递到类中时,为什么要用$first\U POST['first\U name']重置$first\U name的值呢

  • 我看到很多大错误

    第一。在index.php中,您正在执行以下操作:

    $first_name= $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_id = $_POST['email_id'];
    $password = $_POST['password'];
    
    $object = new Header();
    $object -> Register($first_name, $last_name,$email_id,$password);
    
    然后你再做一遍:

     public function Register($first_name, $last_name, $email_id, $password){
         if(isset($_POST['first_name'])){
    
         first_name = $_POST['first_name'];
         $last_name = $_POST['last_name'];
         $email_id = $_POST['email_id'];
         $password = $_POST['password'];
         // other stuff
    
    你不应该依赖$u POST或$u GET来完成你的任务 1.已经在参数中询问您需要什么。 2.向你的职能部门谎称它真正需要什么。永远不要依赖super global来完成您的功能

    第二,我建议你用它来约束你的价值观

    那么,你应该做的是告诉我们你得到了什么错误!它可能是任何东西,从错误的列名到简单的打字错误。为此,请执行以下操作:

    var_dump($odb->errorInfo());
    

    您需要使用`$query=$this->odb->prepare($q);`,否则,您的数据库句柄超出范围。注意,try-and-catch与抛出异常无关you@YourCommonSense然而,如果你因为这个而给我打分,那么也许你应该在另一篇帖子上,因为他们也使用了$odb->errorInfo()