使用php POST变量命名mysql表列
我正在构建一个web应用程序,其中用户填写一个html表单,捕获的信息用于创建一个包含相应列的表。但是,mysql返回一个错误,其中使用POST变量命名列。以下是代码示例:使用php POST变量命名mysql表列,php,mysql,Php,Mysql,我正在构建一个web应用程序,其中用户填写一个html表单,捕获的信息用于创建一个包含相应列的表。但是,mysql返回一个错误,其中使用POST变量命名列。以下是代码示例: $questionnaire = mysql_real_escape_string(htmlentities($_POST['questionnaire'])); $question = mysql_real_escape_string(htmlentities($_POST['question'])); $answer1
$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
中的值为列命名?使用倒勾
而不是单引号
,因为列名是标识符
mysql_query = "CREATE TABLE $questionnaire
(id int(5) NOT NULL AUTO INCREMENT,
PRIMARY KEY(id),
question varchar(200),
`$answer1` varchar(200),
`$answer2` varchar(200) )";
- 不要把它放在括号里(
“
)。如果转义列名,则需要使用反勾号
但是,您应该重新考虑您的表布局。如果您必须动态生成表和/或列,那么您的设计肯定有问题。将此
自动增量更改为自动增量
我尝试了反勾号,但它给了我一个新的错误:列名不正确“在变量上传递的值是什么?一个人的名字。”。这是一份调查问卷,答案用于命名列。列数是固定的,但名称因表格而异。这是一份调查问卷,所以我想为每个问题及其答案分配一张表格。