php与mysql数据交互单引号(')转码问题
2021/9/21 2:27:46
本文主要是介绍php与mysql数据交互单引号(')转码问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最开始向数据库中插入博客信息的代码:
$sql="INSERT INTO blogs (title,content,type,time,id) VALUES ('$_POST[title]','$_POST[content]','$[type]','$_POST[time]','$_POST[id]')";
即直接将前端通过post传来的参数存入数据库中。后来测试发现一个问题就是当content也就是博客内容中含单引号时,无法实现博客的上传。应该是单引号会将sql语句重新分割,导致sql语句错误,就无法正常上传博客了。使用php的 htmlspecialchars 方法,将特殊字符转换为 HTML 实体。
使用ENT_QUOTES参数就可以实现将博客中的单引号转化为 ';,就能够正常将博客存入数据库了。
$content = htmlspecialchars($_POST['contetn'],ENT_QUOTES); $sql="INSERT INTO blogs (title,content,type,time,id) VALUES ('$_POST[title]','$_POST[content]','$content','$_POST[time]','$_POST[id]')"; $con->query( $sql );
当我们需要获取博客时,取出的博客内容时被转化过的格式,例如单引号就是 ' ,<就是<……
要想在前端页面正常显示博客内容,就必须将特殊符号转换回来,这里就要使用与 htmlspecialchars 相对的函数 htmlspecialchars_decode函数了。
并且要将参数设置为ENT_QUOTES,因为需要将单引号从'转换回来,而默认是不会转换单引号的。
部分代码如下:
$arr = array(); // 将每行的博客的内容均转码 while ( $row = $result->fetch_assoc() ) { $row['content'] = htmlspecialchars_decode($row['content'],ENT_QUOTES); array_push( $arr, $row ); }
这篇关于php与mysql数据交互单引号(')转码问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-29env: php: no such file or directory
- 2024-03-01php foreach break
- 2024-02-26Exception参数 php-icode9专业技术文章分享
- 2023-12-30PHP文件批量上传-icode9专业技术文章分享
- 2023-12-30thinkphp6 withJoin-icode9专业技术文章分享
- 2023-12-27MagicArray:像php一样,让Go业务代码不再卷!
- 2023-11-18centos7编译安装PHP教程。
- 2023-11-18centos7编译安装phpMyAdmin教程。
- 2023-10-13唱衰这么多年,PHP 仍然还是你大爷!
- 2023-07-25PHP8,性能更好,语法更好,类型安全更完善