我正在为工作制作存储日志,过去两个小时我一直在使用此代码,但没有成功。出于某种原因,无论我检查并重新检查INSERT INTO查询的代码多少次,它都无法正常工作。
请记住,我复制了这段代码,几乎逐字(显然已更改了表单名称和字段)来自另一个具有基本相同功能且100%工作的页面。代码如下:
这是包含提交交易的表单的页面:
<?php
$script = '<script>
$(document).ready(function(){
$(".datepicker").datepicker();
}); </script>' ;
$title = "View/Edit Storage - " ;
include('inc/header.php');
?>
<table>
<tr>
<form action="transadded.php" name='addnewtransaction' method="POST">
<td><input type="text" name="moveID" size="20" value="<?php echo $results[moveid]; ?>" readonly> </td>
<td><select id="inoutselect" name="inorout">
<option value="Select">Select</option>
<option value="Storage In">Storage In</option>
<option value="Storage Out">Storage Out</option>
</select> </td>
<td><input type="text" name="numberofunits" size="20"></td>
<td><input type="text" name="dateoftransaction" size="20" class="datepicker"></td>
<td><input type="text" name="rrdt" size="20"> </td>
<td><input type="submit" value="Add" id="logsubmit"></td>
</form>
</table>
<br /><br />
<?php };?>
这是查询本身,又名“transadded.php”:
<?php
$title = "Project Added - ";
include('inc/header.php');
$query = "INSERT INTO newtransaction (moveid, inout, units, transdate, refno) VALUES('$_POST[moveID]','$_POST[inorout]','$_POST[numberofunits]','$_POST[dateoftransaction]','$_POST[rrdt]')";
if(!mysqli_query($con,$query))
{
die ('Error: ' . mysqli_error($con));
}
echo '<div class="transstatus">' . '1 record added' . '</div>';
mysqli_close($con);
?>
显然,标题包含连接数据库的功能,正如我所说,另一个查询可以正常使用它,所以我知道这不是问题。单击提交按钮后,我在页面上看到的错误如下:
错误:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在'inout,units,transdate,refno'附近使用正确的语法VALUES('1234567','Storage In','81','09/11/2013''at at第1行
此处,“1234567”,“存储在”等是我在表单中输入的值。
我希望你能帮助我。我太困了!
另外,我知道我现在没有注射防护。我打算稍后再努力,但我想先把功能理顺。
答案 0 :(得分:4)
答案 1 :(得分:1)
使用以下内容:
$query = "INSERT INTO newtransaction (
`moveid`, `inout`, `units`, `transdate`, `refno`
)
VALUES(
'{$_POST[moveID]}', '{$_POST[inorout]}',
'{$_POST[numberofunits]}', '{$_POST[dateoftransaction]}',
'{$_POST[rrdt]}'
)
";
答案 2 :(得分:0)
$query = "INSERT INTO newtransaction (moveid, inout, units, transdate, refno)
VALUES
( '".$_POST['moveID']."','".$_POST['inorout']."','".$_POST['numberofunits']."',
'".$_POST['dateoftransaction']."','".$_POST['rrdt']."')";
你张贴了你的='$_POST[dateoftransaction]'
正确的程序是您使用wamp = '".$_POST['dateoftransaction']."'
我希望你犯错误
Ferrakkem