在将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);
?>