php
  • mysql
  • 2014-02-16 106 views 1 likes 
    1

    好吧,我有一个表单数据和php文件,它将表单数据发送到MYSQL。 据我所知,我的SQL命令将撇号解释为关闭语法或其他内容,并且不会插入它们。 但是我有一个字符串替换所有撇号。这似乎工作,直到我插入变量到HTML并尝试再次插入它们。 见下面从包含变量的表单插入变量到MYSQL

    $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> '; 
    

    当我尝试插入$报告到我的SQL它不会让他走,仿佛字符串替换从来没有发生过。但我知道这是因为当我回显$ report来测试它时,所有的撇号都被替换了。这是怎么回事!

    此外,我已经测试了多次,插入工程时,我的表单数据不包括撇号。

    +0

    什么是数据库字段定义为? VARCHAR? PHP脚本中的SQL插入代码是什么样的? – pscs

    +0

    '''对于html来说是无效的引号。 –

    回答

    0

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

    相关问题