当我尝试插入mysql数据库时出现以下错误。
MYSQL错误:您的SQL语法中有错误;检查手册 对应于您的MySQL服务器版本,以获得正确的语法 使用“条件,状态”附近的值(' 20140715_173221.jpg',' rt', '船只',' hf',' ''新''在第1行
我可以插入没有字段条件和状态的罚款。 这是表单/ javascript。
<script type="text/javascript">
$(document).ready(function(){
$('#upload select[name="Type"]').change(function(){
if($('#upload select[name="Type"] option:selected').val() == 'Shroud' || $('#upload select[name="Type"] option:selected').val() == 'Vessel' ){
$('#Status').show();
}else{
$('#Status').hide();
}
});
});
$(document).ready(function(){
$('#upload select[name="Type"]').change(function(){
if($('#upload select[name="Type"] option:selected').val() == 'Collector' ||
$('#upload select[name="Type"] option:selected').val() == 'M150' ||
$('#upload select[name="Type"] option:selected').val() == 'TC' ){
$('#Condition').show();
}else{
$('#Condition').hide();
}
});
});
</script>
<form id="upload" name="upload" enctype="multipart/form-data" action="ImageUpload.php" method="POST">
<label for="Type">Type:</label>
<select id="Type" name="Type">
<option value="">Select a Type...</option>
<option value="Shroud">Shroud</option>
<option value="Vessel">Vessel</option>
<option value="Collector">Collector</option>
<option value="M150">M150</option>
<option value="TC">TC</option>
<option value="VanesHOBIF">Vanes/HOB/IF</option>
</select><br><br>
Title: <input type="text" name="UserTitle"><br>
<div id="Status" style="display:none">Status:
<input type="text" name="Status" value="">
<br>
</div>
<div id="Condition" style="display:none">
<label for="Condition">Condition:</label>
<select name="Condition">
<option value=" "></option>
<option value="New">New</option>
<option value="Cleaned">Cleaned</option>
<option value="Drained">Drained</option>
<option value="NA">NA</option>
</select><br><br>
</div>
<label for="Desciption">Description:</label><br>
<textarea type="text" name = "Description" cols="40" rows= "4"></textarea><br>
File: <input type="file" name="file" id="file"><br>
<input type="submit" name="submit"value="Submit">
</form>
和我的PHP帖子文件
$title=$_POST['Title'];
$usertitle=$_POST['UserTitle'];
$type=$_POST['Type'];
$Description=$_POST['Description'];
$files=($_FILES['file']['name']);
$Condition=$_POST['Condition'];
$Status= $_POST['Status'];
$sql="INSERT INTO ImageTable (Title,UserTitle,Type,Description,Condition, Status) VALUES ( '$files','$usertitle', '$type', '$Description','$Condition','$Status')";
if (!mysqli_query($con,$sql))
{
die('MYSQL Error: ' . mysqli_error($con));
}
如果我回显$Condition
和$ Status
,我会看到表单中选择的值。不确定insert语句出了什么问题。提前致谢
答案 0 :(得分:3)
Condition
是MySQL保留字。
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
如果您想继续将其用作列名,请在其周围加上刻度标记:
`Condition`
(Title,UserTitle,Type,Description,`Condition`, Status)
答案 1 :(得分:1)
在每个$ _POST和$ _GET中使用mysql_real_escape_string() 条件是保留字试图重命名。
答案 2 :(得分:1)
除了事实之外,您应该使用mysql_real_escape_string来避免SQL注入:
条件是mySQL中的reserved word。这就是你收到错误的原因。您必须重命名该字段或使用这样的反引号:`Condition`
。