2016-12-14 129 views
0

我必須創建一個表單,將答案發送到數據庫,但是當我填寫表單時數據庫沒有更新,並且我收到了自制錯誤:「出錯了」。任何人都可以看到任何錯謝謝。不插入數據庫。 PHP和mysql

形式:

<form id="contact-form" method="post" action="sentEnquiries.php" name="enquiries"> 
      <div class="row"> 
       <div class="col-md-6"> 
        <div class="form-group"> 
         <label for="name"> 
          Name</label> 
         <div class="input-group"> 
          <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span> 
          </span> 
          <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required="required" /></div> 
        </div> 

        <div class="form-group"> 
         <label for="email"> 
          Email Address</label> 
         <div class="input-group"> 
          <span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span> 
          </span> 
          <input type="email" class="form-control" id="email" name="email" placeholder="Enter email" required="required" /></div> 
        </div> 

        <div class="form-group"> 
         <label for="phoneNumber"> 
          Phone Number</label> 
         <div class="input-group"> 
          <span class="input-group-addon"><span class="glyphicon glyphicon-earphone"></span> 
          </span> 
          <input type="tel" class="form-control" id="phoneNumber" name="phone" placeholder="Enter phone number" required="required" /></div> 
        </div> 

        <div class="form-group"> 
         <label for="partySize"> 
          Party Size</label> 

         <input type="number" min="1" max="6" class="form-control" id="partySize" name="partySize" required="required" /> 
        </div> 




       </div> 

       <div class="col-md-6"> 
        <div class="form-group"> 
         <label for="arrivalDate"> 
          Arrival Date</label> 

         <input type="date" class="form-control" id="arrivalDate" name="arrivalDate" /> 
        </div> 

        <div class="form-group"> 
         <label for="departureDate"> 
          Departure Date</label> 

         <input type="date" class="form-control" id="departureDate" name="departureDate"/> 

        </div> 
        <div class="form-group"> 
         <label for="name"> 
          Message</label> 
         <textarea name="message" id="message" class="form-control" rows="9" cols="25" required="required" 
          placeholder="Message"></textarea> 
        </div> 
       </div> 
       <div class="col-md-12"> 
        <button type="submit" class="btn btn-skin pull-right" id="btnContactUs"> 
         Send enquiry</button> 
       </div> 
      </div> 
      </form> 

答案:

<?php 

include("conn.php"); 


$sentName = $_POST['name']; 
$sentEmail = $_POST['email']; 
$sentPhone = $_POST['phone']; 
$sentPartySize = $_POST['partySize']; 
$sentArrivalDate = $_POST['arrivalDate']; 
$sentDepartureDate = $_POST['departureDate']; 
$sentMessage = $_POST['message']; 


$insertQuery = "INSERT INTO Enquiries(enquiryID, name, email, phone, partySize, arrivalDate, departureDate, message) VALUES(NULL, '$sentName', '$sentEmail', '$sentPhone, '$sentPartySize', $sentArrivalDate, '$sentDepartureDate', '$sentMessage')"; 


?> 

再往下答案DOC:

<div class="descriptions"> 

     <?php 
     if(mysqli_query($conn, $insertQuery)) { 
      echo "<p>Thank you for your enquiry.</p>"; 
       mysqli_close($conn); 
     } else { 
      echo "<p>Something went wrong.</p>"; 
       mysqli_close($conn); 
     } 


     ?> 




     </div> 
+1

還沒有找錯誤運行查詢之前添加的條件,但是你的應用程序將不會被保存到SQL注入。使用準備好的語句使它們保存;) – Twinfriends

+0

你不能在插入值上使用'name'將其改爲別的。並且該ID應該是自動增量,所以也刪除這些。 – Option

+0

@選項哪個值?在帖子裏面? – monkey232

回答

0

你能不能確認如下:

  1. enquiryID列,是此列是自動增量如果沒有更好的,你設置id成爲自動增量主鍵
  2. 爲了調試,你可以先回響在$ _ POST [「名」]則退出;以確保您的html的發佈數據正常工作。
  3. 如果不行,你應儘量選擇從簡單的查詢數據庫第一,所以你會知道數據庫表的連接是正常工作
+0

1。是的,它是兩個。我會怎麼做呢?沒有這麼做,因爲你可能會告訴。 – monkey232

0

這裏是如何我會做到這一點。

更改你的要求,但這裏是我的例子:

PDO類:

class form 
{ 
    public function sendForm($name, $email, $phone, $party, $date, $depart, $message) 
    { 
     $stmt = $this->conn->prepare("INSERT INTO `enquiries` (`name`,`email`,`phone`,`partySize`,`arrivalDate`,`departureDate`,`message`) VALUES (:fname, :email, :phone, :party, :arrive, :depart, :msg)"); 
     $stmt->bindParam(array(':fname' => $name, ':email' => $email, ':phone' => $phone, ':party' => $party, ':arrive' => $date, ':depart' => $depart, ':msg' => $message)); 
     $stmt->execute(); 
    } 
} 

然後你的表單頁面中:

$form = new form(); 

if (isset($_POST['sendIt'])) 
{ 
    $form->sendForm($_POST['Fname'],$_POST['email'],$_POST['phone'],$_POST['size'],$_POST['date'],$_POST['depart'],$_POST['message']); 
} 

然後我沒有在div標籤基本形式,所以你「會需要稍微調整:

<form action="" method="post"> 
    <input type="text" name="Fname"> 
    <input type="email" name="email"> 
    <input type="text" name="phone"> 
    <input type="text" name="size"> 
    <input type="text" name="date"> 
    <input type="text" name="depart"> 
    <textarea name="message" id="" cols="30" rows="10"></textarea> 

    <input type="submit" name="sendIt"> 
</form> 

這是一個非常基本的一個,沒有感謝消息或條件,但你可以很容易地通過做

if (!empty($var) 
{ 
// do something 
} else { 
echo "you didnt fill this in...";