PHP MySQLi转义引号

PHP MySQLi转义引号,php,mysql,mysqli,Php,Mysql,Mysqli,我使用PHP/mysqli来读取注释,但是表中的各种注释都有单引号或双引号 我将注释存储在数据属性中。通过使用Chrome控制台,我可以看到引用的内容使整个代码变得异常 <?php echo "<td><a href='' class='comment' data-toggle='modal' data-comment='".htmlentities($row[comment])."'>" . $row[partner_name] . "</a>

我使用PHP/mysqli来读取注释,但是表中的各种注释都有单引号或双引号

我将注释存储在数据属性中。通过使用Chrome控制台,我可以看到引用的内容使整个代码变得异常

 <?php
   echo "<td><a href='' class='comment' data-toggle='modal' data-comment='".htmlentities($row[comment])."'>" . $row[partner_name] . "</a></td>";
 ?>

正如您在上面的代码中所看到的,我尝试使用htmlentities。我还尝试了addslashes和两者的组合

无论如何,我仍然无法正确显示注释,因为mysql表中有引号

是否有其他PHP函数可用于修复此问题

正上方是Chrome控制台的屏幕截图。就在单词后面,有一个引语,它把我的代码抛了出去。所有其他橙色文本都被读取为HTML,而它应该是注释的一部分


必须有一种方法将单引号作为字符串的一部分读取。

将标记ENT\u QUOTES传递给htmlentities函数。看见这将用标识的引号替换引号,并防止其脱离数据注释属性。

将标记ENT\u quotes传递给htmlentities函数。看见这将用标识的引号替换引号,并防止其脱离数据注释属性。

将标记ENT\u quotes传递给htmlentities函数。看见这将用标识的引号替换引号,并防止其脱离数据注释属性。

将标记ENT\u quotes传递给htmlentities函数。看见这将用已标识的引号替换引号,并防止其脱离数据注释属性。

嗯,有两个问题:

  • 您必须对内容进行编码,尤其是引号:

    $text = htmlentities($value, ENT_QUOTES);
    
  • title
    属性不适用于换行符,因此您必须处理这个问题。像这样的东西应该可以完成这项工作:

    $text = preg_replace('/\r?\n/', '#xA;', $text);
    

  • 那么有两个问题:

  • 您必须对内容进行编码,尤其是引号:

    $text = htmlentities($value, ENT_QUOTES);
    
  • title
    属性不适用于换行符,因此您必须处理这个问题。像这样的东西应该可以完成这项工作:

    $text = preg_replace('/\r?\n/', '#xA;', $text);
    

  • 那么有两个问题:

  • 您必须对内容进行编码,尤其是引号:

    $text = htmlentities($value, ENT_QUOTES);
    
  • title
    属性不适用于换行符,因此您必须处理这个问题。像这样的东西应该可以完成这项工作:

    $text = preg_replace('/\r?\n/', '#xA;', $text);
    

  • 那么有两个问题:

  • 您必须对内容进行编码,尤其是引号:

    $text = htmlentities($value, ENT_QUOTES);
    
  • title
    属性不适用于换行符,因此您必须处理这个问题。像这样的东西应该可以完成这项工作:

    $text = preg_replace('/\r?\n/', '#xA;', $text);
    

  • 尝试转义数据中的引号。与此相关的东西:

    $pattern = "/\"|\'/";
    $replace = '\\\"';
    $subject = $row[comment];
    $rowComment = preg_filter($pattern, $replace, $subject);
    
    *提示-您还可以在存储数据之前过滤数据


    描述:echo$rowcoment将生成一个包含所有转义引号的字符串

    尝试转义数据中的引号。与此相关的东西:

    $pattern = "/\"|\'/";
    $replace = '\\\"';
    $subject = $row[comment];
    $rowComment = preg_filter($pattern, $replace, $subject);
    
    *提示-您还可以在存储数据之前过滤数据


    描述:echo$rowcoment将生成一个包含所有转义引号的字符串

    尝试转义数据中的引号。与此相关的东西:

    $pattern = "/\"|\'/";
    $replace = '\\\"';
    $subject = $row[comment];
    $rowComment = preg_filter($pattern, $replace, $subject);
    
    *提示-您还可以在存储数据之前过滤数据


    描述:echo$rowcoment将生成一个包含所有转义引号的字符串

    尝试转义数据中的引号。与此相关的东西:

    $pattern = "/\"|\'/";
    $replace = '\\\"';
    $subject = $row[comment];
    $rowComment = preg_filter($pattern, $replace, $subject);
    
    *提示-您还可以在存储数据之前过滤数据



    描述:echo$rowcoment将生成一个包含所有转义引号的字符串

    到底是什么问题?生成的源是什么?我正在从mysql数据库中提取数据。我已经使用了一个查询来检索必要的数据。我想我试图绕过大量的代码,只显示问题所在,即[comment]的行数据。我应该显示所使用的查询吗?告诉我们输出时显示的错误。@crazymoin,好的,一秒钟…
    htmlentities
    对于显示的字符串上下文足够了。您的问题可能是关于无引号的键和未定义的持续警告?问题到底是什么?生成的源是什么?我正在从mysql数据库中提取数据。我已经使用了一个查询来检索必要的数据。我想我试图绕过大量的代码,只显示问题所在,即[comment]的行数据。我应该显示所使用的查询吗?告诉我们输出时显示的错误。@crazymoin,好的,一秒钟…
    htmlentities
    对于显示的字符串上下文足够了。您的问题可能是关于无引号的键和未定义的持续警告?问题到底是什么?生成的源是什么?我正在从mysql数据库中提取数据。我已经使用了一个查询来检索必要的数据。我想我试图绕过大量的代码,只显示问题所在,即[comment]的行数据。我应该显示所使用的查询吗?告诉我们输出时显示的错误。@crazymoin,好的,一秒钟…
    htmlentities
    对于显示的字符串上下文足够了。您的问题可能是关于无引号的键和未定义的持续警告?问题到底是什么?生成的源是什么?我正在从mysql数据库中提取数据。我已经使用了一个查询来检索必要的数据。我想我试图绕过大量的代码,只显示问题所在,即[comment]的行数据。我应该显示所使用的查询吗?告诉我们输出时显示的错误。@crazymoin,好的,一秒钟…
    htmlentities
    对于显示的字符串上下文足够了。您的问题可能是关于未引用的密钥和未定义的持续警告?我下面的奥尔森先生正确地认为还需要更换返回字符。我下面的奥尔森先生正确地认为还需要更换返回字符。我下面的奥尔森先生正确地认为还需要更换返回字符。我下面的奥尔森先生正确地认为还需要更换返回字符字符也需要更换。