在数据库中找不到我的注册详细信息

时间:2016-04-12 07:19:25

标签: php mysql mysqli

我是php的新手并且在项目上遇到了问题。我创建了一个数据库和一个表,创建了注册页面,一切似乎都没问题。但是,注册页面上输入的所有细节都没有出现在database.please可以帮助调试吗?php代码如下所示

<?php 
session_start(); 

require_once('config.php'); 

?> 

<?php 
if (isset($_POST['register'])){ 
$name = $_POST['name']; 
$email = $_POST['email']; 
$password = $_POST['password']; 
$cpassword = $_POST['confirm_password']; 

$sql = $con->query("INSERT into   'users' (id, name, email, 
password,confirm_password) VALUES     ('', {$name}', '{$email}', 
'{$password}', '{$cpassword}')"); 
die ("cannot connect to database;"); 
} 

?> 

CONFIG FILE: 
<?php 

$con = mysqli_connect("localhost",       "root", "","knux"); 

?> 

3 个答案:

答案 0 :(得分:0)

您正在混合程序和面向对象的方法。 mysqli_connect返回句柄,而不是对象,因此您无法使用$con->something。使用它来创建数据库连接:

$con = new mysqli('localhost', 'root', '', 'knux');

更多:http://php.net/manual/en/mysqli.construct.php

答案 1 :(得分:0)

“n”

中缺少单引号
('', {$name}', '{$email}', '{$password}', '{$cpassword}')

应该是:

('', '{$name}', '{$email}', '{$password}', '{$cpassword}')

您的html可能存在问题,但您可以尝试这些:

  1. 确保您的字段来自HTML,您可以使用

    执行此操作
    print_r($_POST);
    

    如果您看到所有输入,则错误不是来自HTML。

  2. 在这种情况下,您实际上不需要在一个文件中包含两个PHP标记,而不是

    <?php 
     session_start(); 
    
     require_once('config.php'); 
    
    ?> 
    
    <?php 
     if (isset($_POST['register'])){ 
     $name = $_POST['name'];
     ...
    ?>
    
  3. 你可以:

       <?php 
         session_start(); 
    
         require_once('config.php'); 
    
         if (isset($_POST['register'])){ 
         $name = $_POST['name'];
         ...
        ?>
    
    1. 在引用数据库元素(如表格)时使用反引号,而不是:

       INSERT into   'users' (id, name, email, password,confirm_password)
      

      做的:

      INSERT into   `user` (`id`, `name`, `email`, `password`,`confirm_password`)
      
    2. mysql_error();中使用or die();,以便您拥有:

      or die(mysql_error());
      
    3. 这应该告诉你究竟是什么问题。

      由于您仍然在学习,所以不推荐使用PDO而不是PHP的mysql_函数。如果您对此感觉太满意,可以使用mysqli_功能代替。 I完全不同;)

答案 2 :(得分:-1)

缺少单引号{$name}'

此外,如果id为自动递增,则可以从INSERT语句中删除

正确方式:

$sql = $con->query("INSERT into   `users` (name, email, 
password,confirm_password) VALUES     ('{$name}', '{$email}', 
'{$password}', '{$cpassword}')");