2013-10-29 9 views
1

我有一個表格,將插入記錄到表people,並且我還想通過插入到名爲log的另一個表中註冊系統日誌如何插入兩個表格?其中之一是註冊日誌

這是形式:

<form action="inserting.php" method="POST"> 

    <input type="text" name="name"> 
    <input type="text" name="mother"> 
    <input type="text" name="address"> 
    <input type="text" name="city"> 
    <input type="submit" name="submit" value="Insert"> 

</form> 

而且inserting.php頁面將是這樣的:

<?php 

    if(isset($_POST['submit'])){ 

     $insert = mysqli_query($con, "INSERT INTO people ('id', 'name', 'mother', 'address', 'city') VALUES (NULL, '$_POST[name]', '$_POST[mother]', '', '$_POST[address]', '$_POST[city]')"); 
     $log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)"); 

     echo $_POST['name'] . "was succesfully inserted on" . $time . "of" . $date; . "." 
    } 

?> 

有什麼不對?怎麼做?

+0

有什麼錯誤? –

+0

如果自動遞增主鍵,插入時不需要id列 – Dave

回答

0
  1. 不要在您的查詢中使用原始$_POST!決不!

  2. 使用預處理語句插入用戶數據。

  3. 總是檢查查詢結果,並從mysqli_error()讀取檢查是什麼錯誤。

在這種情況下,你是不是在'$_POST[name]所以它會導致語法錯誤。同樣在第一個查詢中,您使用的是'而不是「包裝列名稱」。

+0

謝謝,Elon!我從來沒有想過這個問題是因爲語法錯誤。 我認爲這樣做比較複雜。 –

0

對列名和表名使用反引號,而不是引號。假設自動遞增id。並且還引用了POST名稱。

INSERT INTO people (`name`, `mother`, `address`, `city`) 
VALUES ('$_POST['name']', '$_POST['mother']', '', '$_POST'[address']', '$_POST['city']') 
0

如果您的表日誌的列ID是主鍵,你會得到一個錯誤,因爲的PK不能爲空。

和您的查詢是:

$log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)");