MySQL 语法错误从 &lt;textarea&gt; 插入类型 VARCHAR(999) <<< 已解决使用不正确的表名

标签 mysql

当我尝试将表单元素中的文本消息插入数据库设置以接收最多 999 个字符的 VARCHAR 类型时,收到 MySQL 错误消息。我还尝试将类型设置为文本。也许有些东西我在这里没有看到。错误指出它是语法错误,但我没有看到错误。我使用的是 MySQL 5.1 版

错误消息如下:

“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在“键(数字、类别、问题、answertxt、答案、正确、不正确、反馈”附近使用的正确语法,网址为第 1 行”。

这是我的提交表单(create.php):

    <?php

    session_start(); //start sesson.

    $error = false;
    $error = $_SESSION['error'];

    if($error){
        echo '<div class="error">Please fill in all required fields indicated by the * symbol</div>';
    }

    ?>

    <form action="db_adddata.php" method="post">

    <label>Category</label><br>
    <input type="text" id="category" name="category" value="" maxlength="50">*<br>

    <label>Question text</label><br>
    <textarea id="question" name="question" rows="7" cols="20"></textarea>*<br>

    <label>Answer text</label><br>
    <textarea id="answertxt" name="answertxt" rows="7" cols="20"></textarea>*<br>

    <label>Accepted  answers (comma separated)</label><br>
    <textarea id="answer" name="answer" rows="7" cols="20"></textarea>*<br>

    <label>Correct answer response</label><br>
    <textarea id="correct" name="correct" rows="7" cols="20"></textarea>*<br>

    <label>Incorrect answer response</label><br>
    <textarea id="incorrect" name="incorrect" rows="7" cols="20"></textarea>*<br>

    <label>Feedback response</label><br>
    <textarea id="feedback" name="feedback" rows="7" cols="20"></textarea>*<br>

    <label>Lesson refferal response</label><br>
    <textarea id="lessonref" name="lessonref" rows="7" cols="20"></textarea>*<br>

    <input type="submit" value="submit">

    </form>

这是处理脚本(db_adddata.php):

    <?php

session_start(); //start sesson.
require('db_connect.php'); //connect to the database.

//assign variables with the data we posted from the form on the previous page.

$category = $_POST['category'];
$question = $_POST['question'];
$answertxt = $_POST['answertxt'];
$answer = $_POST['answer'];
$correct = $_POST['correct'];
$incorrect = $_POST['incorrect'];
$feedback = $_POST['feedback'];
$lessonref = $_POST['lessonref'];

//assign vars to session vars.

$_SESSION['category'] = $category;
$_SESSION['question'] = $question;
$_SESSION['answertxt'] = $answertxt;
$_SESSION['answer'] = $answer;
$_SESSION['correct'] = $correct;
$_SESSION['incorrect'] = $incorrect;
$_SESSION['feedback'] = $feedback;
$_SESSION['lessonref'] = $lessonref;


//check if vars are empty if yes deny and go to error page. Otherwise continue.

if(empty($category) || empty($question) || empty($answertxt) || empty($answer) || empty($correct) || empty($incorrect) || empty($feedback) || empty($lessonref)) {

    $_SESSION['error'] = true; //set error as true.
    header('Location: create.php'); //go back to form page.

}
else {

    //add the data to the database.

    mysql_query("INSERT INTO key (number, category, question, answertxt, answer, correct, incorrect, feedback, lessonref, datemod) VALUES ('','$category','$question','$answertxt','$answer','$correct','$incorrect','$feedback','$lessonref',CURDATE())")or die(mysql_error());

    header('Location: viewkey.php'); // go to view key page.
}

mysql_close(); //close connection.

    ?>

下面是我的名为“key”的表的 MySQL 表信息:

领域 |类型 |整理 |额外

<小时/>

数量|整数(6) | |自动增量(主要)

<小时/>

类别| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

问题| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

回答txt | varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

回答| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

正确| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

不正确| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

反馈| varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

类(class)引用 | varchar(999) | varchar(999) | latin1_general_ci |

<小时/>

日期修改 |日期 | |

<小时/>

最佳答案

key是mySQL中的保留字。您需要用反引号将该表格括起来:

INSERT HIGH_PRIORITY INTO `key` ... etc

关于MySQL 语法错误从 &lt;textarea&gt; 插入类型 VARCHAR(999) <<< 已解决使用不正确的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10756758/

相关文章:

mysql - where语句在存储过程中不起作用

mysql - 多用户访问MySQL返回新记录的连续计数器?

mysql - 在MySQL中查询经纬度

mysql INNER/LEFT JOIN 与 UNION ALL

MYSQL 计数跨表事件的位置

php - 登录页面php重定向和cookie删除

mysql - 从表中选择一个值并保留它

mysql - rails 服务器中的数据库存储在哪里?

javascript - Internet Explorer 自动从网站下载音乐而不是流式传输

php - Laravel 迁移授权