2017-09-07 126 views
1

我想通過PHP在數據庫中插入HTML表單數據。 我無法插入HTML表單數據到數據庫中,我不知道,我在做什麼我的代碼錯了?我想通過PHP在數據庫中插入HTML表單數據,但它沒有發生

這裏是我的代碼:

<?php 
$host = 'localhost'; 
$username = 'root'; 
$password = ''; 
$dbname = 'mydb'; 
$con=mysqli_connect($host, $username, $password,$dbname); 
if (!$con) 
{ 
    echo "connection failed"; 
} 

if(isset($_POST['submit'])) 
{ 
$name = $_POST['username']; 
$pass = $_POST['password']; 
$sql="insert into mytable1 (name,password) VALUES ('$name', '$pass')"; 
    if(mysqli_query($con,$sql)) 
    { 
     echo "DATA IS INSERTED INTO DATABASE"; 
    } 
} 
?> 
<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>SignUpform.com</title> 

    </head> 
    <body> 

     <div id="div1"> 
      <div id="div2"> 
       <h1>Sign up Form</h1> 
      </div> 
      <form action="" method="post"> 
      <fieldset> 
       <legend>Signup form ceredentials</legend> 
       <p id="p1">Name:</p>  
       <input id="text1" type="text" placeholder="Enter username" name="username"> 
       <p id="p2">Password:</p> 
       <input id="pass1" type="password" placeholder="Enter Password" name="password"> 
       <p id="email">Email:</p> 
       <input id="emailtextfld" type="text" placeholder="Enter Email" name="email"> 
       <p id="company">Company Name:</p> 
       <input id="companytextfld" type="text" placeholder="Company name" name="company"> 
       <input id="donebtn" type="submit" value="submit" name="submit"> 

      </fieldset> 
      </form> 
     </div> 
    </body> 
</html> 

這裏是我的數據庫 enter image description here

我的數據庫表的結構: enter image description here

+1

你會得到'數據被插入數據庫'嗎?您可以接受SQL注入,參數化您的查詢。你的密碼應該被散列。 – chris85

+0

不,我沒有收到此消息「數據插入數據庫」@ chris85 – Mcolo

+0

那麼會發生什麼,什麼都不顯示?你能否在你的條件上加上'else'來看看是否有失敗? – chris85

回答

2

你應該從改變你的存儲引擎數據庫的:

ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8mb4;

ENGINE=innoDB DEFAULT CHARSET=utf8; 

從我的角度,它的發生只是因爲「引擎錯誤」。所以點變更後你的數據庫的存儲引擎,我希望它能爲你工作inshallah。

+0

在更改了我的數據庫的存儲引擎後,現在工作正常,現在解決了數據在數據庫中插入問題。汗 – Mcolo

1

你需要給這樣的

形式的行動
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> 

添加此檢查連接

if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
+0

我試過這個'<?php echo htmlspecialchars($ _ SERVER [「PHP_SELF」]);?>'。但它仍然沒有在數據庫中插入數據@Shibon – Mcolo

+0

把這個{echo「達到」後; }裏面,如果阻止它說「已到達」@Shibon – Mcolo

+2

'action'不是必需的。 – chris85

2
if(isset($_POST['submit'])) 
{ 
$name = $_POST['username']; 
$pass = $_POST['password']; 
$sql="insert into mytable1 (name,password) VALUES ('$name', '$pass')"; 

$query = mysqli_query($con, $sql); 
if($query) 
{ 
echo "<h4 style='color:green'>Inserted Successfully.</h4>"; 
    } 
    else 
    { 
     echo "<h4 style='color:red'>Faild.</h4>"; 
    } 
} 
?> 

嘗試這種解決方案。

+0

我試過這個,但它說「失敗」@Prakhar Sood – Mcolo

+0

所以你的插入查詢有問題。嘗試回顯用戶名和密碼的值,檢查您是否通過表單獲取值。 –

+0

是的,我已經回覆了用戶名和密碼的值,並通過html形式獲取值@Prakhar Sood – Mcolo

相關問題