我已经阅读了一些相关的问题,但我仍然不明白.所以我决定在这里发一个问题.我有一个如下查询
$query = "INSERT INTO Table (q1,q2,q3,q4....q25) VALUES ('".$_POST['Q1']."',
'".$_POST['Q2']."',
'".$_POST['Q3']."',
'".$_POST['Q4']."'.....)";
mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
$ _POST ['Qx']值是从允许人们输入评论的调查中获得的.通常人们会喜欢"不,不能,不......"这样的词.将数据插入表时,撇号将导致问题.
我已经阅读了一些建议方法的文章
mysql_real_escape_string($_POST['Q1'])
Run Code Online (Sandbox Code Playgroud)
但是我有25个问题,其中一些甚至还有子问题.所以我有大约70个数据输入到表中.
是否有任何好的方法可以将撇号传递到MySQL表中?
编辑:so I have around 70 data to input to the table.
70是for循环的"无";-)
for($i=1; $i<71; $i++) {
$params[$i] = mysql_real_escape_string($_POST['Q'.$i], $link);
}
Run Code Online (Sandbox Code Playgroud)
但您可能需要考虑重新设计数据库表.
您必须编码/转义参数.如果(不推荐使用)mysql扩展名为mysql_real_escape_string()
$link = mysql_connect(...);
...
$query = sprintf(
"
INSERT INTO
Table
(q1,q2,q3,q4....q25)
VALUES
('%s','%s' ...)
",
mysql_real_escape_string($_POST['Q1'], $link),
mysql_real_escape_string($_POST['Q2'], $link)
...
);
mysql_query($query, $link) or die(mysql_error($link));
Run Code Online (Sandbox Code Playgroud)
但最好使用支持的扩展,如mysqli或pdo.
并看看准备好的陈述.