Php Can';在数据库中找不到我注册的详细信息
我是一个php新手,在一个项目中遇到了问题。我创建了一个数据库和一个表,创建了注册页面,一切看起来都正常。但是,注册页面上输入的所有详细信息都没有出现在数据库中。请有人帮我调试吗?php代码如下所示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
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
formtable
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的问题已经解决了,你在提交时是否有任何错误??提交时必须有一个输出,为了更好地看到这一点,你应该实现我的第四个建议。另外,从值中删除大括号{}
,让我们看看如何进行。