2016-04-12 73 views
2

我是php的新手,並且一直在項目中出現問題。我創建了一個數據庫和一個表,創建了註冊頁面,一切似乎都ok。但是,所有在註冊頁面上輸入的信息不會出現在database.please任何人都可以幫助調試?是如下圖所示在數據庫中找不到我的註冊詳細信息

<?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"); 

?> 
+0

'換行'形式'表'名稱'而不是使用'反托克' – Saty

+0

'什麼是您的輸出? ** **的var_dump?你做了** error_reporting(E_ALL); ** – izk

+0

在',{$ name}',' – Saty

回答

-1

還有就是「N單引號缺少{$name}'

此外,如果id是PHP代碼自動遞增它可以從INSERT聲明中刪除

正確方法:

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

還缺少'''感謝buddie ..我剛糾正它仍然沒有工作 – banky

+0

數據庫表中的字段類型是身份證? –

+0

Int;自動增量 – banky

0

你混合程序和麪向對象的方法。 mysqli_connect返回句柄,不是對象,所以你不能使用$con->something。使用此功能來創建數據庫連接:

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

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

+0

仍然沒有工作 – banky

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']; 
    ... 
    ?> 
    

您可以:

<?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使所有的差異;)

    +0

    Print_r($ _POST)測試,因爲你建議給我在我的網頁上的以下輸出:Array([name] => Steve [email] => [email protected] [password] => 123 [ confirm_password] => 123 [register] =>) – banky

    +0

    @banky這意味着html的問題已解決,您在提交時是否收到錯誤?提交時必須有輸出,爲了更好地看到這一點,您應該實施我的第4條建議。另外,從值中移除大括號'{}',讓我們看看如何。 – ChasingShadows

    相關問題