2016-07-07 123 views
1

我不确定是否因为我真的很累或什么;我似乎无法弄清楚为什么我无法用此代码插入到我的数据库中。插入数据库问题pdo

<?php 
require 'mysqlcon.php'; 
?> 

<?php 


if(isset($_POST["submit"])){ 
try { 
$dbh = new PDO("mysql:host=$hostname;dbname=CSY2028",$username,$password); 

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line 
$sql = "INSERT INTO bookings (name, email) 
VALUES ('".$_POST["name"]."','".$_POST["email"]."')"; 
if ($dbh->query($sql)) { 
header("location: index.php"); 
echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>"; 

} 
else{ 
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>"; 
} 

$dbh = null; 
} 
catch(PDOException $e) 
{ 
echo $e->getMessage(); 
} 

} 
?> 

我有以下表我已经签了的ID,名称都是一样的&匹配。它只是没有插入任何东西?

<?php 
require 'mysqlcon.php'; 
?> 

     <!-- Main --> 
      <section id="main" class="wrapper"> 
       <div class="container"> 
    <section> 
          <h3>Book Novelty Vehicle</h3> 
          <form action="bookingsql.php" method="post"> 
           <div class="row uniform 50%"> 
            <div class="6u 12u$(xsmall)"> 
             <input type="text" name="name" id="name" value="name" placeholder="Name" /> 
            </div> 
            <div class="6u$ 12u$(xsmall)"> 
             <input type="email" name="email" id="email" value="email" placeholder="Email" /> 
            </div> 
            <div class="6u 12u$(xsmall)"> 
             <input type="text" name="address" id="address" value="" placeholder="Address" /> 
            </div> 
            <div class="6u$ 12u$(xsmall)"> 
             <input type="text" name="pup" id="pup" value="" placeholder="Pick up point" /> 
            </div>         
            <div class="6u 12u$(xsmall)"> 
             <input type="text" name="phone" id="phone" value="" placeholder="Phone Number" /> 
            </div> 

            <div class="6u$ 12u$(xsmall)"> 
            <input type="text" name="event" id="event" value="" placeholder="Event Type" /> 
            </div> 

            <div class="12u$"> 
             <div class="select-wrapper"> 
              <select name="category" id="category"> 
               <option value="">- Novelty Vehicle Option -</option> 
               <option value="1">One</option> 
               <option value="1">Two</option> 
               <option value="1">Three</option> 
               <option value="1">Four</option> 
              </select> 
             </div> 
            </div> 
            <div class="6u$ 12u$(small)"> 
             <input type="checkbox" id="human" name="human"> 
             <label for="human">You are aware this is for booking novelty vehicles only?</label> 
            </div> 
            <div class="12u$"> 
             <textarea name="info" id="info" placeholder="Please give us any additional information, this will help us speed up your booking process." rows="6"></textarea> 
            </div> 
            <div class="12u$"> 
             <ul class="actions"> 
              <li><input type="submit" value="Book Vehicle" class="special" /></li> 
              <li><input type="reset" value="Reset" /></li> 
             </ul> 
            </div> 
           </div> 
          </form> 
         </section> 

       </div> 
      </section> 
+1

这很难说这是否是射击在所有'如果(isset($ _ POST [ “提交”])){。 ..}'因为你在电子邮件输入/ div后切断了你的表单。我猜;由于没有命名提交和/或缺少''标签,它不会触发。谁知道,只有你这样做。 –

+1

*“我有下面的表格,我已经检查过,ID的名字都是一样的和匹配的。”* - 使用'id'属性意味着javascript/jquery/ajax。如果你使用了这些,而你没有包含它,那么这是另一个猜测。如果没有,那么你不需要'id',除非你使用CSS。 –

+0

我已将我的整个表单编辑到我的文章中。 – ScaperExe

回答

4

无名提交

<input type="submit" value="Book Vehicle" class="special" /> 

和里面什么也没有if(isset($_POST["submit"])){...}永远不会火起来。

所以做:

<input name="submit" type="submit" value="Book Vehicle" class="special" /> 

另外,由于您使用的PDO,用事先准备好的声明。你开放给SQL注入。

参考文献:

+0

请参阅OP的问题下的(我的)其他意见。我发布这个答案后,更多的发展。 –