1

我正在构建一个 Web 应用程序,其中用户填写一个 html 表单,捕获的信息用于创建一个包含相应列的表。但是,mysql 返回一个错误,其中 POST 变量用于命名列。这是代码示例:

$questionnaire = mysql_real_escape_string(htmlentities($_POST['questionnaire']));
$question = mysql_real_escape_string(htmlentities($_POST['question']));
$answer1 = mysql_real_escape_string(htmlentities($_POST['answer1']));
$answer2 = mysql_real_escape_string(htmlentities($_POST['answer2']));

mysql_query = "CREATE TABLE $questionnaire
               (id int(5) NOT NULL AUTO INCREMENT,
                PRIMARY KEY(id),
                question varchar(200),
                '$answer1' varchar(200),
                '$answer2' varchar(200) )";

如何使值$answer1用于给列命名?

4

3 回答 3

0

将其更改AUTO INCREMENTAUTO_INCREMENT

http://www.w3schools.com/sql/sql_autoincrement.asp

于 2013-04-09T16:18:23.537 回答
0

使用BACKTICKnotSINGLE QUOTES作为列名是标识符,

mysql_query = "CREATE TABLE $questionnaire
               (id int(5) NOT NULL AUTO INCREMENT,
                PRIMARY KEY(id),
                question varchar(200),
                `$answer1` varchar(200),
                `$answer2` varchar(200) )";
于 2013-04-09T16:12:31.453 回答
0

请勿将其放在括号 ( ') 中。如果您转义列名,则需要使用反引号。

但是,您应该重新考虑您的表格布局。如果您必须即时生成表和/或列,那么您的设计肯定有问题。

于 2013-04-09T16:13:17.067 回答