从包含变量的表单将变量插入MYSQL

时间:2014-02-16 21:37:57

标签: php mysql

好的,我有一个表单和php文件,将表单数据发送到MYSQL。 我知道我的SQL命令将撇号解释为结束语法或其他东西,不会插入它们。 但是我有一个替换所有撇号的字符串。这似乎有效,直到我将变量插入html并尝试再次插入它们。 见下文

$c1=$_POST['c1'];
$c1a=str_replace("'", "''", "$c1");

$report= '
<html>
<body>
<p align=\”left\”><strong>Comments:</strong></p>
    <p align=\”left\”>
    '.$c1a.'
      <br>
    </p></td><html> ';

当我尝试将$ report插入我的sql时,它不会让它继续下去,就好像字符串替换从未发生过一样。但我知道这样做是因为当我回复$ report来测试它时,所有的撇号都会被替换掉。发生了什么事!

此外,我已多次测试,当我的表单数据不包含撇号时,插入工作正常。

1 个答案:

答案 0 :(得分:0)

您必须在单引号前添加反斜杠。你可以使用函数mysql_real_escape_string()(或mysqli_real_escape_string())来做到这一点。