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

Php Can';在数据库中找不到我注册的详细信息,php,mysql,mysqli,Php,Mysql,Mysqli,我是一个php新手,在一个项目中遇到了问题。我创建了一个数据库和一个表,创建了注册页面,一切看起来都正常。但是,注册页面上输入的所有详细信息都没有出现在数据库中。请有人帮我调试吗?php代码如下所示 <?php session_start(); require_once('config.php'); ?> <?php if (isset($_POST['register'])){ $name = $_POST['name']; $email = $_POST

我是一个php新手,在一个项目中遇到了问题。我创建了一个数据库和一个表,创建了注册页面,一切看起来都正常。但是,注册页面上输入的所有详细信息都没有出现在数据库中。请有人帮我调试吗?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"); 

?> 


缺少“n个单引号”
{$name}

另外,如果
id
是自动递增的,则可以从
INSERT
语句中删除它

正确的方法:

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

缺少“n个单引号”
{$name}

另外,如果
id
是自动递增的,则可以从
INSERT
语句中删除它

正确的方法:

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

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

$con=newmysqli('localhost','root','knux')


更多信息:

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

$con=newmysqli('localhost','root','knux')


更多信息:

您的“n”中缺少一个引号

应该是:

('', '{$name}', '{$email}', '{$password}', '{$cpassword}')
您的html可能存在问题,但是,您可以尝试以下方法:

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

    print_r($_POST);
    
    如果您看到所有输入,那么错误不是来自HTML

  • 在本例中,您实际上不需要在一个文件中包含两个PHP标记,而不是

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

  • 使用
    mysql_error()或die()中编码>因此您将有:

    or die(mysql_error());
    
  • 这应该能准确地告诉你问题是什么


    但是,由于您仍在学习,我建议您使用
    PDO
    而不是PHP的
    mysql\uz
    函数。如果您对它感觉太舒服,您可以使用
    mysqli\uu
    函数<代码>我
    让一切变得不同;)

    您的“n”中缺少一个引号

    应该是:

    ('', '{$name}', '{$email}', '{$password}', '{$cpassword}')
    
    您的html可能存在问题,但是,您可以尝试以下方法:

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

    print_r($_POST);
    
    如果您看到所有输入,那么错误不是来自HTML

  • 在本例中,您实际上不需要在一个文件中包含两个PHP标记,而不是

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

  • 使用
    mysql_error()或die()中编码>因此您将有:

    or die(mysql_error());
    
  • 这应该能准确地告诉你问题是什么


    但是,由于您仍在学习,我建议您使用
    PDO
    而不是PHP的
    mysql\uz
    函数。如果您对它感觉太舒服,您可以使用
    mysqli\uu
    函数<代码>我
    让一切变得不同;)

    Wrap off quotes
    form
    table
    name改为使用
    backtick
    您的输出是什么?垃圾场?您是否进行了错误报告(E_ALL);在
    ,{$name},
    中也缺少
    换行引号
    表格
    名称,而使用
    倒勾
    您的输出是什么?垃圾场?您是否进行了错误报告(E_ALL);在
    ,{$name},
    中也缺少
    ,{$code>,
    谢谢buddie..我刚刚纠正了它仍然不起作用数据库表中的什么字段类型是id?谢谢buddie..我刚刚纠正了它仍然不起作用数据库表中的什么字段类型是id?按你的建议打印($\u POST)测试在我的页面上给了我以下输出:Array([name]=>Steve[电子邮件]=>stv@gmail.com[password]=>123[confirm_password]=>123[register]=>)@banky这意味着html的问题已经解决了,您提交时是否有任何错误??提交时一定有输出,为了更好地看到这一点,您应该执行我的第四个建议。此外,删除大括号
    {}
    从这些值中,让我们看看结果如何。按你的建议进行的Print\u r($\u POST)测试在我的页面上给了我以下输出:Array([name]=>Steve[email]=>stv@gmail.com[密码]=>123[确认密码]=>123[注册]=>)@banky这意味着html的问题已经解决了,你在提交时是否有任何错误??提交时必须有一个输出,为了更好地看到这一点,你应该实现我的第四个建议。另外,从值中删除大括号
    {}
    ,让我们看看如何进行。