首页
4K壁纸
直播
统计分析
友情链接
搜索
1
#1031 – TABLE STORAGE ENGINE FOR ” DOESN’T HAVE THIS OPTION解决方法
1,253 阅读
2
让浏览器不显示 https 页面中 http 请求警报 http-equiv=”Content-Security-Policy” content=”upgrade-insecure-requests”
965 阅读
3
报错代码:ERROR 1227 (42000)-解决办法
750 阅读
4
微信个人商户号养号建议
592 阅读
5
解决移动端position:fixed随软键盘移动的问题
570 阅读
Php
Mysql
Linux
Reids
Java
Python
常用笔记
学习
乱七八糟
Search
标签搜索
php
Mysql
千卡云支付
Linux
redis
千卡云
千卡易支付
Nginx
function
JS
session
shell
JSON
跨域
支付宝
CentOS
Apache
支付
composer
Array
蓝科迪梦
累计撰写
106
篇文章
累计收到
0
条评论
首页
栏目
Php
Mysql
Linux
Reids
Java
Python
常用笔记
学习
乱七八糟
页面
4K壁纸
直播
统计分析
友情链接
搜索到
106
篇与
蓝科迪梦 发布的内容
2023-08-01
php中的clone()方法
php5中默认通过引用传递对象,假设$obj1和$obj2是两个对象,使用$obj2=$obj1这样的方法复制出来的对象是相关联的,如果在程序中需要复制出一个值和原来相同的对象又不希望复制出来的对象与源对象相关联,那么就需要使用clone关键字,类似于$obj2=clone $obj1; 如果还希望在复制的同时,目标对象的某些属性与源对象的不同,可以在类里面定义一个__clone()方法,在这个方法中完成为目标对象的属性赋新值。 <?php class doclone{ private $id,$name,$address; public function __construct($id=0,$name='',$address=''){ $this->name=$name; $this->id=$id; $this->address=$address; } public function get_id(){ return $this->id; } public function get_name(){ return $this->name; } public function get_address(){ return $this->address; } public function __clone(){ $this->id=$this->id+1; $this->name='Kong'; $this->address='USA'; } } $A = new doclone(10,'A','UK'); echo '克隆之前的对象:'; echo 'id='.$A->get_id(); echo 'name='.$A->get_name(); echo 'address='.$A->get_address(); echo "\n"; $B = clone $A; echo '克隆过后的对象:'; echo 'id='.$A->get_id(); echo 'name='.$A->get_name(); echo 'address='.$A->get_address(); echo "\n"; echo '克隆过后的对象属性:'; echo 'id='.$B->get_id(); echo 'name='.$B->get_name(); echo 'address='.$B->get_address();
2023年08月01日
322 阅读
0 评论
0 点赞
2023-08-01
Expected response code 220 but got code “” with message “”
如题,在使用laravel时,mail按照配置阿里云邮箱 .env配置: MAIL_DRIVER=smtp MAIL_HOST=smtpdm.aliyun.com MAIL_PORT=465 MAIL_USERNAME=ali@mail.qvnidaye.com MAIL_PASSWORD=** MAIL_FROM_ADDRESS=ali@mail.qvnidaye.com MAIL_FROM_NAME=鼎云网络 MAIL_ENCRYPTION=SSL 发送邮件报错: Expected response code 220 but got code "", with message """ 解决办法: 找到config/mail.php 更改:'encryption' => env('MAIL_ENCRYPTION', 'tls'), 再次发送测试邮件,发送成功。 这个一般是由于encyption配置导致的 Secure Sockets Layer (SSL) Transport Layer Security (TLS) 如果使用ssl端口则encyption配置项必须为465/994如果使用非ssl则应该使用25
2023年08月01日
290 阅读
0 评论
0 点赞
2023-08-01
thinkphp5报错 Call to a member function toArray() on array
thinkphp5内报错Call to a member function toArray() on array 使用场景 使用模型查询后,想获取不包含对象内容的数组结构的结果。 使用方式 $gardenAuth = new GardenAuth(); $res = $gardenAuth->where(['id'=>$id])->select()->toArray(); 结果 Call to a member function toArray() on array 原因 数据库(database.php)里设置的返回数据结果为数组类型 'resultset_type' => 'array' 解决方式 方法一: 全局:修改Config.php 'resultset_type' => 'collection' 方法二: 局部:在模型中加入 protected $resultSetType = 'collection'; 方法三: 推荐,thinkphp自带的一个方法 if (!function_exists('collection')) { /** * 数组转换为数据集对象 * @param array $resultSet 数据集数组 * @return \think\model\Collection|\think\Collection */ function collection($resultSet) { $item = current($resultSet); if ($item instanceof Model) { return \think\model\Collection::make($resultSet); } else { return \think\Collection::make($resultSet); } } } 调用方法: $res = collection($res)->toArray();
2023年08月01日
308 阅读
0 评论
0 点赞
2023-08-01
PHP Fatal error: Class 'Memcache' not found in
安装了memcached和php的memcache的扩展,PHPinfo()也支持了memcache, 但是放在项目中就提示Class"Memcache" not found, 最后发现php7.3装的是memcached,多节点的 然后更换了php7.1重新配置了memcache之后正常运行
2023年08月01日
299 阅读
0 评论
0 点赞
2023-04-18
PHP在数组中追加列
/* model实例化*/ $list = self::where($where) ->with(['user''node']) ->alias('log') ->field('log.idlog.user_idlog.rate(log.u + log.d) as origin_trafficlog.trafficlog.log_timelog.node_id') ->order($order) ->paginate([ 'query' => Request::get() 'list_rows' => $pageSize ]); $ids = $list->toarray(); //重新的整理数组 $ids = array_values(array_column($ids["data"]'daili_code')); //获取数组中指定列,并去除键名 $ids = implode("" $ids); //格式化数组 /* 空值处理 */ if(!$ids){ $ids=[]; array_push($ids'0'); } $daili = Db::name('app_daili')->where('daili_code''in'$ids)->field('name')->select(); //输出
2023年04月18日
281 阅读
0 评论
0 点赞
2023-04-18
php-redis Deprecated: Function Redis::setTimeout() is deprecated in
Deprecated: Function Redis::setTimeout() is deprecated in Deprecated 意思是不推荐,但仍然可以使用,是级别最低的报错 这是php7.0版本以后redis的错误提示 关闭此类报错只需到php.ini 修改参数 error_reporting = E_ALL &~E_NOTICE &~E_DEPRECATED 然后重启php服务就行了 但是Deprecated类报错会影响性能,最好是将不推荐的函数替换掉 https://segmentfault.com/a/1190000002880738 php-redis常用函数操作类 https://blog.csdn.net/haige025/article/details/97794504
2023年04月18日
296 阅读
0 评论
0 点赞
2022-12-24
php报错:Cannot redeclare class 提示的解决方法
1.重复包含相同的类文件: 例如:对于某个类文件zuimoban.php,在a.php中 include "zuimoban.php"; 在b.php中 include "a.php"; include "zuimoban.php"; 就会报错。 解决:将上述的include全部替换为include_once,同理使用require导入方法时则全部替换为require_once即可。 include和require的区别:http://bbb.ms521.cn/index.php/Home/Index/article/aid/65 2.在同一个文件中重复声明了两次同名的类: 例如: <?php class Foo {} class Foo {} ?> 在第二个 Foo 的地方就会报错。 解决:去掉第二个Foo,或者重命名。 为了防止重复定义,可以在定义一个新的类的时候判断一下这个类是否已经存在: <?php if(class_exists('SomeClass') != true) {} ?> 3.该类为PHP类库中内置的类。 判断方法:在一个空文件中写入 <?php class Com {} ?> 这时候提示Cannot redeclare class Com,说明这个类就是PHP内置的类。不能使用。 另外,要避免使用太大众化的类名,比如Com,这个类在Linux使用可能是正常的,在Windows环境却无法运行
2022年12月24日
274 阅读
0 评论
0 点赞
2022-12-24
php-redis Deprecated: Function Redis::setTimeout() is deprecated in
Deprecated: Function Redis::setTimeout() is deprecated in Deprecated 意思是不推荐,但仍然可以使用,是级别最低的报错 这是php7.0版本以后redis的错误提示 关闭此类报错只到php.ini 修改参数 error_reporting = E_ALL &~E_NOTICE &~E_DEPRECATED 然后重启php服务就行了 但是Deprecated类报错会影响性能,最好是将不推荐的函数替换掉
2022年12月24日
348 阅读
0 评论
0 点赞
2022-12-16
Thinphp中mkdir() Permission denied的问题
最近一直在用TP写项目,在此遇到的问题也比较多。今天来谈谈“mkdir() Permission denied”错误。 你如果不仅仅写代码,还得部署到线上,那么这个tp5的这个错误,你有很大概率会遇见它。 因为这跟文件的权限有关系,特别是自动生成的文件或者目录类的权限,linux服务器出于安全因素对于用户的权限有着严格的控制。 对于tp框架而言,自动生成的文件或者目录应该是runtime目录,所以在线部署代码的时候,开放此类目录的权限。 所以解决mkdir() premission denied 的问题最直接的方式,把runtime权限放开,让所有用户都可以创建它。 chmod -R 777 runtime 在liunx中进入项目目录执行以上命令,就能解决这个问题,简单,高效。 如果你对文件的安全要求比较苛刻,那么以上的答案并不能令你满意,简单,高效的方法背后一般需要牺牲一些安全因素为代价。 但以下提供的方法或许是一个不错的选择。 更改runtime目录的所有者,也就是runtime这个目录权限只针对所有者开放。 以我的项目为例,服务器是nginx,nginx中设置的访问用户为www用户,那么我只需要把runtime目录有root用户改为www用户就能解决此问题。 ps aux|grep nginx //查看当前的nginx进程,能够找到nginx用户是哪个(可能是www,user或者其他的) chown -R www runtime //chown -R <nginx 用户> runtime,改变runtime所有者为nginx用户 ok,进入项目目录去执行上面的命令吧,是否有效一试便知。 上面的方法的解释是因为对于web的每一个请求都是由服务器(nginx,apache等)代劳的,真正操作这些项目文件或目录的是这些服务器用户,比如nginx中的www用户,apache中的apache用户。所以指定文件或者目录的所有者就是这个问题的关键,至于第一个方法设置最高权限为何也可以呢,这个就相当于任何用户都能访问这个runtime目录,当然也包括www或者apache用户。退一步,上面的第二个方法是以nginx为例,如果你的服务器是apache呢,那你现在应该知道怎么改了吧。
2022年12月16日
199 阅读
0 评论
0 点赞
2022-12-16
PHP在数组中追加列
/* model实例化*/ $list = self::where($where) ->with(['user''node']) ->alias('log') ->field('log.idlog.user_idlog.rate(log.u + log.d) as origin_trafficlog.trafficlog.log_timelog.node_id') ->order($order) ->paginate([ 'query' => Request::get() 'list_rows' => $pageSize ]); $ids = $list->toarray(); //重新的整理数组 $ids = array_values(array_column($ids["data"]'daili_code')); //获取数组中指定列,并去除键名 $ids = implode("" $ids); //格式化数组 /* 空值处理 */ if(!$ids){ $ids=[]; array_push($ids'0'); } $daili = Db::name('app_daili')->where('daili_code''in'$ids)->field('name')->select(); //输出
2022年12月16日
354 阅读
0 评论
0 点赞
2022-12-07
Mysql和Redis的本质区别
1.mysql和redis的数据库类型 mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。 redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限 2.mysql的运行机制 mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库。第一:会在反复链接数据库上花费大量时间,从而导致运行效率过慢;第二:反复的访问数据库也会导致数据库的负载过高,那么此时缓存的概念就衍生了出来。 3.缓存 缓存就是数据交换的缓冲区(cache),当浏览器执行请求时,首先会对在缓存中进行查找,如果存在,就获取;否则就访问数据库。 缓存的好处就是读取速度快 4.redis数据库 redis数据库就是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率。 5.redis和mysql的区别总结 (1)类型上 从类型上来说,mysql是关系型数据库,redis是缓存数据库 (2)作用上 mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢 redis用于存储使用较为频繁的数据到缓存中,读取速度快 (3)需求上 mysql和redis因为需求的不同,一般都是配合使用。
2022年12月07日
347 阅读
0 评论
0 点赞
2022-12-07
报错代码:ERROR 1227 (42000)-解决办法
考虑到数据库 MySQL 的稳定性和安全性,数据库 MySQL 限制了 super、shutdown、file 权限,有时在数据库 MySQL 上执行 set 语句时,会出现如下的报错: #1227-Access denied;you need(at least one of)the SUPER privilege (s) for this operation 解决方案: 删除SQL文件中的SET语句,然后重新导入就可以了 SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; SET @@SESSION.SQL_LOG_BIN= 0; -- -- GTID state at the beginning of the backup -- SET @@GLOBAL.GTID_PURGED='341db1af-a492-11e9-a8b6-6c92bf48c732:1-216839'; SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
2022年12月07日
750 阅读
0 评论
0 点赞
2022-12-02
#1031 – TABLE STORAGE ENGINE FOR ” DOESN’T HAVE THIS OPTION解决方法
有一个数据库是从mysql5.6要导进5.7。 出现了:1031 – Table storage engine for ‘这里是具体表名’ doesn’t have this option的错误 5.6是:MyISAM,5.7是:InnoDB。 原来5.6的默认为:ROW_FORMAT=FIXED 但是5.7不支持,我没有具体去看资料,可能是我这个版本吧。 然后把:ROW_FORMAT=FIXED改成: ROW_FORMAT=COMPACT 就可以正常导入执行sql了。
2022年12月02日
1,253 阅读
0 评论
0 点赞
2022-11-24
Deprecated: Function Redis::delete() is deprecated
PHP 操作 Redis 时遇到如下的问题 Deprecated: Function Redis::delete() is deprecated 原因:php-redis 5 版本弃用了 Redis::delete() php -r 'phpinfo();' 运行上述命令在输出中找到 redis,看到为 5.0.1 版本 解决方法:将 delete($key) 改成 del($key) 的操作即可 附:被弃用的方法名的解决 被弃用方法名 替代方法名 delete del zUnion zunionstore zInter zinterstore zDeleteRangeByRank zRemRangeByRank zDeleteRangeByScore zRemRangeByScore zDelete zRem setTimeout expire sContains sismember sRemove srem sSize scard lGetRange lrange lGet lindex listTrim ltrim lRemove lrem lSize lLen getKeys keys getMultiple mget renameKey rename 参考: https://www.drupal.org/project/redis/issues/3068810 this is caused by the update to php-redis 5, apparently only in the PHP 7.3 images. 这是由于更新至 php-redis 5 版本后所造成的,很明显只会在 PHP 7.3 出现 https://github.com/phpredis/phpredis/pull/1588 all aliases are deprecated & delete is an alias for del 所有的别名被弃用 & delete 之前是作为 del 的别名 https://pecl.php.net/package-changelog.php?package=redis&release=5.0.0 Soft deprecate methods that aren't actually Redis commands [a81b4f2d, 95c8aab9] 被弃用的方法实际上并不是 Redis 本身自带的命令 https://github.com/phpredis/phpredis/pull/1572
2022年11月24日
512 阅读
0 评论
0 点赞
2022-11-24
php redis set 时 nginx 502 解决办法
nginx报错提示: *963623 recv() failed (104: Connection reset by peer) while reading response header from upstream .. php-fpm.log报错提示: WARNING: [pool www] child 10559 exited on signal 11 (SIGSEGV) after 0.504455 seconds from start .. 解决:(服务器出现502错误 可能进程过多导致) 修改 php-fpm.conf pm.max_children 设置的尽可能高一些 pm = dynamic pm.max_children = 60 pm.start_servers = 30 pm.min_spare_servers = 30 pm.max_spare_servers = 60 重启php-fpm即可 ============================== 以上是百度查到的实测之后发现没有用,服务器实际并发也并不高,怀疑是redis.so版本问题,于是到redis官方下载替换了php对应最高版本的redis扩展,测试后仍然不行 redis扩展下载: https://windows.php.net/downloads/pecl/releases/redis/5.3.1/ 最终解决方法,将封装的redis操作类方法更换到官方最新版本提供的操作函数,恢复! 目前怀疑是set时可能会存在空参数,而框架自带的封装操作类对空值做了一些无法描述的行为。。导致redis进程异常阻塞,php-fpm内存耗尽重启,导致nginx服务被挂起,然后产生的502问题
2022年11月24日
321 阅读
0 评论
0 点赞
1
...
4
5
6
...
8