为了账号安全,请及时绑定邮箱和手机立即绑定

将链接作为 href 标签插入数据库

将链接作为 href 标签插入数据库

PHP
隔江千里 2023-08-11 10:49:11
我在数据库中插入链接时遇到问题。我通过几个条件生成链接,但最终,当我尝试在数据库中插入链接时出现错误。另外,我从数据库中提取描述,然后将这些链接添加到现有描述中,然后更新该值。$parent_path = 'https://sitename.com/game/'.$parentSlug;$parentLink = '<a href="'.$parent_path.'">'.$parentName.'</a>';$child_path = 'https://sitename.com/game/'.$slug;$childLink = '<a href="'.$child_path.'">'.$name.'</a>'; 我在脚本运行期间遇到几个错误未捕获的 PDOException: SQLSTATE[42000]: 语法错误或访问冲突: 1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解正确的语法,以使用附近的也是 CBD 教育部分,以帮助您在做出...时做出最佳决定。$sql = "SELECT * FROM `wpdev_postmeta` where post_id = $post_id  and meta_key = 'test'";$q = $conn->query($sql);     while($r = $q -> fetch()){     $description = $r['meta_value']; }$description 可能包含“a href 标签”,当我回显它时,它变成可点击的链接,并且无法更新数据库中的字段。$desc = $description.'<br/>'.$parentLink.$childLink;$stmt = "UPDATE wpdev_postmeta SET  meta_value = '$desc' WHERE meta_key  = 'test' and post_id = $post_id ";      if ($conn->query($stmt)) {      echo "Record updated successfully". '<br/>';} else {      echo "Error updating record: " . '<br/>';}为了将来的参考,我是否需要先从数据库获取数据,然后使用新的更新再次发送数据,以防我不想丢失之前插入的内容?我正在谷歌搜索但找不到合适的答案。
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

如果您需要将 HTML 保存到数据库,您可以使用两种不同的方式

  1. 使用准备好的语句。

  2. 对所有标签和其他特殊符号进行编码,例如通过htmlentitieshtmlspecialchars

示例htmlentities

<?php

    $link = '<a href="https://stackoverflow.com/">Check that</a>';

    echo(htmlentities($link, ENT_QUOTES|ENT_HTML5));

    // output:

    /*

    &lt;a href&equals;&quot;https&colon;&sol;&sol;stackoverflow&period;com&sol;&quot;&gt;Check that&lt;&sol;a&gt;

    */

?>

用于解码为 HTML 使用html_entity_decode


<?php

    $encoded = '&lt;a href&equals;&quot;https&colon;&sol;&sol;stackoverflow&period;com&sol;&quot;&gt;Check that&lt;&sol;a&gt;';

    echo(html_entity_decode($encoded, ENT_QUOTES|ENT_HTML5));

    // output

    /*

    <a href="https://stackoverflow.com/">Check that</a>

    */

?>

示例htmlspecialchars:


<?php

    $link = '<a href="https://stackoverflow.com/">Check that</a>';

    echo(htmlspecialchars($link, ENT_QUOTES|ENT_HTML5));

    // output

    /*

    &lt;a href=&quot;https://stackoverflow.com/&quot;&gt;Check that&lt;/a&gt;

    */

?>

对于解码htmlspecialchars:


<?php

    $encoded = '&lt;a href=&quot;https://stackoverflow.com/&quot;&gt;Check that&lt;/a&gt;';

    echo(htmlspecialchars_decode($encoded, ENT_QUOTES|ENT_HTML5));

    // output

    /*

    <a href="https://stackoverflow.com/">Check that</a>

    */

?>


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号