[英]Can't find my registered details in the database
我是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");
?>
您正在混合過程和面向對象的方法。 mysqli_connect
返回句柄,而不是對象,因此您不能使用$con->something
。 使用此命令創建數據庫連接:
$con = new mysqli('localhost', 'root', '', 'knux');
您的“ n”中缺少單引號
('', {$name}', '{$email}', '{$password}', '{$cpassword}')
它應該是:
('', '{$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']; ... ?>
你可以有:
<?php
session_start();
require_once('config.php');
if (isset($_POST['register'])){
$name = $_POST['name'];
...
?>
當引用諸如表之類的數據庫元素時,請使用反引號,而不是:
INSERT into 'users' (id, name, email, password,confirm_password)
做:
INSERT into `user` (`id`, `name`, `email`, `password`,`confirm_password`)
使用mysql_error();
在您or die();
因此您將擁有:
or die(mysql_error());
這應該告訴您確切的問題是什么。
但是,由於您仍在學習,因此不推薦使用PDO
而不是PHP的mysql_
函數。 如果您對它感到不舒服,可以使用mysqli_
函數代替。 I
讓一切變得不同;)
'n單引號缺少{$name}'
另外,如果id
是自動遞增的,則可以將其從INSERT
語句中刪除
正確方法:
$sql = $con->query("INSERT into `users` (name, email,
password,confirm_password) VALUES ('{$name}', '{$email}',
'{$password}', '{$cpassword}')");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.