-1

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

感谢您的任何帮助,您可以提供。

4

3 回答 3

2

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

INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', '$Budgeted', '$Actual')"
于 2013-10-05T16:44:56.173 回答
1

错误“您的 SQL 语法有错误”完全正确!

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

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

于 2013-10-05T16:55:25.147 回答
1

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

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

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

您的陈述应通过在周围添加单引号来更正$budget

$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month',
 '$Name', '$Budgeted', '$Actual')";
    ------^
于 2013-10-05T16:49:58.493 回答