到目前为止,我发现这个错误的所有结果都是参考了一些额外的代码(phpmyadmin或python),所以我有点困惑。昨天我的表格有问题,但似乎已经解决了。所以,现在我似乎遇到了我创建的下拉列表的问题。它们在实际显示MySQL查询列表方面运行良好,但它们似乎没有选择正确的值。
以下是表格:
<form action="/php/newcarcodetest.php" method="post">
<table style="width:575px">
<tr>
<th>Make</th>
<td><select name="make" style="width:344px"><?php make() ?></select></td>
<td></td>
</tr>
<tr>
<th>Model</th>
<td><select name="model" style="width:344px"><?php model() ?></select></td>
<td></td>
</tr>
</table>
<br>
<input type="submit" value="Submit">
</form>
这是功能:
function make() {
$qmake=mysql_query("SELECT VMakeID, VMake FROM vmake");
while($record=mysql_fetch_array($qmake)) {
echo '<option value="'.$record['VMakeID'].'">'.$record['VMake'].'</option>';
}
}
function model() {
$qmodel=mysql_query("SELECT VModelID, VModel FROM vmodel");
while($record=mysql_fetch_array($qmodel)) {
echo '<option value="'.$record['VModelID'].'">'.$record['VModel'].'</option>';
}
}
然后这是形式的php:
<?php
$con=mysqli_connect("server","mycaradmin","SuperSecretPassword","mycars");
if(mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
$make=$_POST["make"];
$model=$_POST["model"];
$sql="INSERT INTO mycars.vehicles (VMakeID,VModelID)
VALUES ('$make','$model;')";
if(!mysqli_query($con,$sql)) {
die('Error: '.mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
就像我说的,下拉列表的功能正常。而且我知道我需要努力减少SQL注入的可能性,但我只是想让它在这一点上起作用。当我单击提交按钮时,它会转到一个空白页面,其中包含错误:
错误:第1行的列'VModelID'的数据被截断
提前致谢!!