我有一个html调查,答案存储在应通过PHP加载到数据库中的变量。PHP字符串变量限制
例如,这是怎样的问题(表的一部分),您可以填写看起来像HTML:
<td style="padding-top: 10px;" colspan="9"> Question1:
<p style="text-align:left;"><textarea name="tag1" cols="80" rows="6"
style="border: 1px solid #D0D0D0;"></textarea></p>
</td>
<td style="padding-top: 10px;" colspan="9"> Question2:
<p style="text-align:left;"><textarea name="tag2" cols="80" rows="6"
style="border: 1px solid #D0D0D0;"></textarea></p>
</td>'
的PHP代码:
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$tag1 = $_POST["tag1"];
$tag2 = $_POST["tag2"];
$sql = "INSERT INTO survey (tag1, tag2)
VALUES ('$tag1','$tag2')";
if (mysqli_query($conn, $sql)) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}'
因此,html中的textarea name =“tag1”...将PHP用户的答案加载到名为tag1的数据库列。
问题是我不能在PHP中插入代码太多的项目添加到支架上(如标签1,标签2,标签3 ...),因为角色是有限的。
这是一个问题,由于我应该包括的问题的数量。如果我创建两个单独的命令,它将加载到数据库中的两个不同的行,看起来很混乱。一个人的答案应该出现在一行中。 (在phpMyAdmin)
我该怎么解决呢?我应该改变什么?
[小博](http://bobby-tables.com/)说***脚本是在对SQL注入攻击的风险。(http://stackoverflow.com/questions/60174/how- ***)了解[MySQLi](http://php.net)的[prepared](http://en.wikipedia.org/wiki/Prepared_statement)语句/manual/en/mysqli.quickstart.prepared-statements.php)。即使[转义字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –
通常你应该正常化你的表...有一个用户(持有用户)表中的问题(持有题)表和连接表user_question(保存用户的问题) –
小博没有提到这样下去,你应该问题还包括用于创建表的SQL语句...如果你想从社区获得任何有用的建议。否则,人们会被蒙住眼睛的飞镖射击。 – YvesLeBorg