2015-12-01 51 views
0

正如标题所说,我无法在MySQL(我使用mysqli)中插入联系表单(使用Bootstrap)。下面是我的PHP脚本:无法使用php&bootstrap表格插入数据到MySQL中

<?php 
    $conn = mysqli_connect('localhost', 'root', 'mypassword', 'mydbname'); 

    if (!$conn) { 
    echo "Error: Unable to connect to MySQL." . PHP_EOL; 
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
    exit; 
    } 

    if(isset($_POST['submit'])){ 
     $sql = mysqli_query($conn, "INSERT INTO `contacts` (`firstName`, `lastName`, `dayOfBirth`, `phone`, `gender`, `email`) VALUES('".$_POST['firstName']."', '".$_POST['lastName']."', '".$_POST['birthday']."', '".$_POST['phone']."', '', '".$_POST['email']."')"); 
    } 

    mysqli_close($conn); 
?> 

,下面将我的联系形式使用引导:

<div class="container"> 
    <div class="row"> 
<h2>Contact Form</h2> 
<form class="form-horizontal" method="POST"> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">First Name:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="firstName" placeholder="First Name"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Last Name:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="lastName" placeholder="Last Name"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">DoB:</label> 
     <div class="col-sm-6 col-md-2"> 
      <div class="input-group date" id="birthday"> 
     <input type="text" class="form-control" name="birthday"> 
     <span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span> </div> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Phone/Mobile:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="phone" placeholder="Phone/Mobile"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Gender:</label> 
     <div class="col-xs-10"> 
      <label class="radio-inline"> 
     <input type="radio" name="gender" value="M"> 
     Male</label> 
      <label class="radio-inline"> 
     <input type="radio" name="gender" value="F"> 
     Female</label> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Email:</label> 
     <div class="col-xs-10"> 
      <input type="email" class="form-control" name="email" placeholder="Email"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <div class="col-xs-offset-2 col-xs-10"> 
      <button type="submit" class="btn btn-primary" name="submit" value="Submit">Submit</button> 
     </div> 
    </div> 
    </form> 
    </div> 
</div> 

好像$conn都没有问题,我可以连接到数据库没有错误,但查询可以有问题。提交时,没有数据被插入到数据库中,但是,它不显示错误。

而且,如果需要的话,在数据库中的所有列允许NULL,我也有1个科拉姆命名id(这是AUTO_INCREMENT),并提醒,我要插入的phpmyadmin,不MySQL的。任何人都可以帮我找出有什么问题吗?

P/s:我正在使用wampserver,如果它确实很重要。

P/s 2:发现错误!

+1

phpMyAdmin是一个到MySQL的Web界面 - 所以插入是一个MySQL语句,并将数据放到数据库中,在这里你可以用phpMyAdmin查看它。尝试在phpMyAdmin界面中运行语句以查看它是否可以在那里使用。 – user2182349

+0

而不是猜测问题,你可以检查'mysqli_query()'的结果,并使用'mysqli_error()'显示一个错误。你也开放注射攻击。请参阅http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496 – Tristan

+0

@ user2182349:是的,我在phpmyadmin inferface中使用插入SQL查询,它可以通常将数据添加到数据库中,但在使用表单时无法正常工作。 Tristan:我没有使用真正的服务器,所以暂时不关心验证或攻击。 – Shizuka

回答

0

确保你真的连接到你的数据库。然后将action属性添加到引导表单中。

<form class="form-horizontal" action="page where insert code happens" method="POST"> 
0

您在查询代码中犯了一些语法错误。试试这个.. Works!

此外,请注意您正在插入MYSQL,它是WAMP或XAMP堆栈的一部分。 PHPMYADMIN是管理数据库的管理部分。

<?php 
    $conn = mysqli_connect('localhost', 'root', '', 'db_sandbox'); 

    if (!$conn) { 
    echo "Error: Unable to connect to MySQL." . PHP_EOL; 
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
    exit; 
    } 

    if(isset($_POST['submit'])){ 
     $firsname = $_POST['firstName']; 
     $lastName = $_POST['lastName']; 
     $birthday = $_POST['birthday']; 
     $phone = $_POST['phone']; 
     $gender = $_POST['gender']; 
     $email = $_POST['email']; 

     $query = "INSERT INTO contacts (firstName, lastName, dayOfBirth, phone, gender, email) VALUES('".$firsname."', '".$lastName."', ".$birthday.", ".$phone.", '".$gender."', '".$email."')"; 
     $sql = mysqli_query($conn, $query); 


    } 

    mysqli_close($conn); 
?> 

<div class="container"> 
    <div class="row"> 
<h2>Contact Form</h2> 
<form class="form-horizontal" method="POST" action="index.php"> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">First Name:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="firstName" placeholder="First Name"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Last Name:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="lastName" placeholder="Last Name"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">DoB:</label> 
     <div class="col-sm-6 col-md-2"> 
      <div class="input-group date" id="birthday"> 
     <input type="text" class="form-control" name="birthday"> 
     <span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span> </div> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Phone/Mobile:</label> 
     <div class="col-xs-10"> 
      <input type="text" class="form-control" name="phone" placeholder="Phone/Mobile"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Gender:</label> 
     <div class="col-xs-10"> 
      <label class="radio-inline"> 
     <input type="radio" name="gender" value="M"> 
     Male</label> 
      <label class="radio-inline"> 
     <input type="radio" name="gender" value="F"> 
     Female</label> 
     </div> 
    </div> 
     <div class="form-group"> 
     <label class="control-label col-xs-2">Email:</label> 
     <div class="col-xs-10"> 
      <input type="email" class="form-control" name="email" placeholder="Email"> 
     </div> 
    </div> 
     <div class="form-group"> 
     <div class="col-xs-offset-2 col-xs-10"> 
      <button type="submit" class="btn btn-primary" name="submit" value="Submit">Submit</button> 
     </div> 
    </div> 
    </form> 
    </div> 
</div>