我收到一条mysql错误,说“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在附近使用正确的语法...”
以下是我的代码的基础知识:
首先,我使用类别表中的行填充选择菜单选项。这很好用:
<select id="dropdown-select" name="Name">
<option value="" id="dropdown-option">Please select a category.</option>
<?php
$query_categories = "SELECT * FROM categories";
$result_categories = mysql_query($query_categories) or die(mysql_error());
while($categories_row = mysql_fetch_array($result_categories)) {
echo '<option id="dropdown-option" value="' . $categories_row['cat_name'] . '">' . $categories_row['cat_name'] . '</option>';
}
?>
</select>
后来,当我把表单提交到事务表时(上面的表我从数据表中提取数据,这可能是个问题?)是我收到错误的时候。我认为它与上面的代码bc有关,如果我从表单提交中删除这个元素,它会将其余的值写入数据库而不会出现任何错误。
if(!isset($_POST['Name'])) {
die('You must select an income or expense from the drop down menu.');
} else {
$Name = $_POST['Name'];
}
//create query
$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', $Budgeted', '$Actual')";
$result = mysql_query($query) or die("Error in query: $query. " . mysql_error());
感谢您提供的任何帮助。
答案 0 :(得分:2)
在$ Budgeted
之前,您在insert语句中缺少单引号INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', '$Budgeted', '$Actual')"
答案 1 :(得分:1)
如果您将某些字段在数据库中定义为VARCHAR
,CHAR
。
另外,如果要从PHP脚本在数据库中插入字符串值,则需要在其周围添加一个封闭的单引号('
)。
在您的情况下,您插入的字符串没有semicolons
,因此,它在MySQL中显示错误。
您的陈述应该通过在$budget
附近添加单引号来更正:
$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month',
'$Name', '$Budgeted', '$Actual')";
------^
答案 2 :(得分:1)
错误“您的SQL语法中有错误”完全正确!
$query = "INSERT INTO transaction (month, trans_name, budgeted, actual)
VALUES ('$Month', '$Name', $Budgeted', '$Actual')";
Look here, you missed something ----^
您的语句中缺少'
,导致语法错误。把单引号放入,你应该好好去!