发布的数据不会插入数据库

时间:2017-08-09 18:04:39

标签: php html mysql post mariadb

在将HTML表单数据传递给PHP脚本但未插入数据库之前,我遇到过类似的问题。所以我最终完全重做了表格,它只是起作用。所以在另一个具有不同(较少)数据的表单上 - 我只更改了表单名称。所以再一次,我可以在标题中看到表单数据,我的所有拼写,大小写和字段顺序都相同。我可以回显变量,但无法将信息插入到数据库表(不同的表)中,也不能从MariaDB获得任何警告。

出了什么问题?

的var_dump($查询);

string(231)" INSERT INTO datavalidator(lotnum,description,serial,sanitationmethod,validationmethod,passfail,failcomment,validationemployee)VALUES(' 12',' device' ,'序列',' HD粉碎机4' xxd',' 1','通过',&# 39;雇员');"

DB (mysql-mariadb 10)

MariaDB [r2inventory]> show columns from datavalidator;
+--------------------+--------------+------+-----+-------------------+----------------+
| Field              | Type         | Null | Key | Default           | Extra          |
+--------------------+--------------+------+-----+-------------------+----------------+
| id                 | int(11)      | NO   | PRI | NULL              | auto_increment |
| date               | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
| lotnum             | int(11)      | YES  |     | NULL              |                |
| description        | mediumtext   | YES  |     | NULL              |                |
| serial             | varchar(32)  | YES  |     | NULL              |                |
| sanitizationmethod | varchar(140) | YES  |     | NULL              |                |
| validationmethod   | varchar(140) | YES  |     | NULL              |                |
| passfail           | tinyint(1)   | YES  |     | NULL              |                |
| validationemployee | varchar(48)  | YES  |     | NULL              |                |
| failcomment        | mediumtext   | YES  |     | NULL              |                |
+--------------------+--------------+------+-----+-------------------+----------------+
10 rows in set (0.00 sec)

的config.inc.php

<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "r2inventory";
$db_table = "datavalidator";

$link = mysqli_connect($db_host,$db_user,$db_pass);
if(!$link) die ('Could not connect to database: '.mysqli_error());
/* check connection */
if (mysqli_connect_errno()) {
    prf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

?>

HTML

<form  method=post action="processor.min.php">
  <div class=""> 
  <label for="manufacturer">Validation Employee</label></br>
    <input type="text-area" name="validationemployee" id="validationemployee" placeholder="Who Are You?" required="required"/>


  </div>
  <div class="field name-box">
    <label for="manufacturer">Device</label></br>
    <input type="text-area" name="description" id="description" placeholder="Model?" required="required"/>


  </div>
    <div class="field-box">
    <label for="model">Serial</label></br>
    <input type="text-area" name="serial" id="serial" placeholder="Serial Number?" required="required"/>


  </div>
    <div class="field-box">
    <label for="model">Lot Number</label></br>
    <input type="number" max="99999999999" name="lotnum" id="lotnum" placeholder="Lot number?" required="required"/>


  </div>

<div class="rTable">
<div class="rTableRow">
<div class="rTableCell"><h3></h3></div>
<div class="rTableCell"><strong></strong></div>
<div class="rTableCell"><span style="font-weight: bold;"></span></div></div>

  <div class="radio">
    <div class="rTableRow">
    <div class="rTableCell"><label for="sanitationmethod">Sanitation Method</><!---<span class="fb-required">*</span></div><div class="rTableCell">Power on Self-Test</div><div class="rTableCell">No Beeps, codes, or errors</div>--></div>
    <input type="radio" name="sanitationmethod" id="sanitationmethod" value="HD Shredder 4" required="required">HD Shredder 4</></br>
    <input type="radio" name="sanitationmethod" id="sanitationmethod" value="dd urandom" required="required">$ dd if=/dev/urandom of=/dev/sdx</></br>

  </div>
  <div class="radio">
    <div class="rTableRow">
    <div class="rTableCell">
    <label for="validationmethod">Validation Method</><!--- <span class="fb-required">*</span></div><div class="rTableCell">Power on Self-Test</div><div class="rTableCell">No Beeps, codes, or errors</div>--></div>
    <input type="radio" name="validationmethod" id="validationmethod" value="dsumm" required="required">dsumm</></br>
    <input type="radio" name="validationmethod" id="validationmethod" value="xxd" required="required">xxd -a /dev/sdx</></br>

  </div>

    <div class="radio">
  <div class="rTableRow">
    <div class="rTableCell"><label for="passfail" >Pass or Fail</></div><!--<span class="fb-required">*</span></label></div><div class="rTableCell">Plug into Battery</div><div class="rTableCell">Charges the Battery</div></div>-->
    <input type="radio" name="passfail" id="passfail" value="1" required="required">Pass</></br>
    <input type="radio" name="passfail" id="passfail" value="0" required="required">Fail</></br>

  </div>

     <div class="field name-box">
     <label for="serial">Reason it failed</label></br>
     <input type="text-area" name="failcomment" id="failcomment" placeholder="Fail reason">


  </div>
<div class="fb-button form-group field-submit-button"><button type="submit" class="btn btn-default" name="Submit" style="default" id="Submit" value="Submit">Submit</button>
</div>
</form>

processor.min.php

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

include("config.inc.php");
if (isset($_POST['Submit'])) {
    $validationemployee = $_POST['validationemployee'];
    $description = $_POST['description'];
    $serial = $_POST['serial'];
    $lotnum = $_POST['lotnum'];
    $sanitationmethod = $_POST['sanitationmethod'];
    $validationmethod = $_POST['validationmethod'];
    $passfail = $_POST['passfail'];
    $failcomment = $_POST['failcomment'];
}

$validationemployee = mysqli_real_escape_string($link, $validationemployee);    
$description = mysqli_real_escape_string($link, $description);
$serial = mysqli_real_escape_string($link, $serial);
$lotnum = mysqli_real_escape_string($link, $lotnum);
$sanitationmethod = mysqli_real_escape_string($link, $sanitationmethod);
$validationmethod = mysqli_real_escape_string($link, $validationmethod);
$passfail = mysqli_real_escape_string($link, $passfail);
$failcomment = mysqli_real_escape_string($link, $failcomment);
### printing variables
echo $validationemployee ." ". $description  ." ". $validationmethod ." ". $sanitationmethod ." ". $passfail ." ". $failcomment;

mysqli_select_db($link,$db_name) or die ("no database");
$query  = "INSERT INTO " .$db_table. " (`lotnum`, `description`, `serial`, `sanitationmethod`, `validationmethod`, `passfail`, `failcomment`, `validationemployee`)
    VALUES ('$lotnum','$description','$serial','$sanitationmethod','$validationmethod','$passfail','$failcomment','$validationemployee');";

mysqli_query($link,$query);

if ($link->warning_count) {
    if ($result = $link->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

mysqli_close($link);

include("confirm.html");

#print_r($lotnum "Entered "$description" </br>"$serial"</br> with sanitationmethod of "$sanitationmethod);
?>

0 个答案:

没有答案