之前谢了个网站,做了读写分离,主域名和子域名没有使用SSL证书(访问https://开头),图片文件存储在对象存储OSS中,解析在它上的子域名也没有使用SSL证书,就这样写进数据库保存的内容中包含的图片路径URL都是带http开头的。后来为了将网站打包以接口形式做成微信小程序上传时要求域名必须要进行SSL认证,于是去阿里云申请云盾证书(选择它的主要原因是免费申请),唯一不好的地方就是不支持通配符,这样时候问题就来了,之前由于读写分离模式,原先写进数据库里卖年的文图文件URL路径需要批量修改“http://”改成"https://"才能显示出来图片,这里介绍两种方法。
批量替换数据表指定字段下的字符串示意图
1.php批量替换数据表指定字段下的字符串方法

<?php
     $info = db('table')->field('id,content')->select();
     $content = '';
     foreach($info as $k=>$v){
           $content = str_replace('http://', 'https://', $v['content']);
	       db('table')->where(array('id'=>$v['id']))->setField('content',$content);
     }
?>
2.mysql批量替换数据表指定字段下的字符串方法
打开navicat连接数据库,连接成功后点击它导航上的"查询"->"新建查询",执行下面SQL语句:
格式:
update 表名 SET  字段=REPLACE(字段,'被替换的字符串','要替换成的字符串')
SQL语句
update tab_table SET  content=REPLACE(content,'http://','https://');