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

我在数据库中插入链接时遇到问题。我通过几个条件生成链接,但最终,当我尝试在数据库中插入链接时出现错误。


另外,我从数据库中提取描述,然后将这些链接添加到现有描述中,然后更新该值。


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

}

为了将来的参考,我是否需要先从数据库获取数据,然后使用新的更新再次发送数据,以防我不想丢失之前插入的内容?我正在谷歌搜索但找不到合适的答案。


隔江千里
浏览 162回答 1
1回答

繁华开满天机

如果您需要将 HTML 保存到数据库,您可以使用两种不同的方式使用准备好的语句。对所有标签和其他特殊符号进行编码,例如通过htmlentities或htmlspecialchars。示例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>    */?>
打开App,查看更多内容
随时随地看视频慕课网APP