表单提交时出现 MySQL 错误


MySQL error on form submission

我收到一个 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());

感谢您提供的任何帮助。

您在 $Budgeted 之前的插入语句中缺少单引号

INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', '$Budgeted', '$Actual')"

如果您有一些字段在数据库中定义为 VARCHARCHAR

此外,如果要从 PHP 脚本在数据库中插入字符串值,则需要在其周围添加一个括起来的单引号 ( ' )。

在您的情况下,您插入的字符串没有semicolons,因此,它在 MySQL 中显示错误。

应通过在$budget两边添加单引号来更正您的陈述,如下所示:

$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month',
 '$Name', '$Budgeted', '$Actual')";
    ------^

错误"您的 SQL 语法有错误"是完全正确的!

$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) 
          VALUES ('$Month', '$Name', $Budgeted', '$Actual')";
Look here, you missed something ----^

语句中缺少导致语法错误的'。把单引号放进去,你应该很高兴了!