try catch的一点小体会2
在try catch的一点小体会
这个日记里,写到了,如果数据库保存失败 ,save()
仅仅返回一个false
,因此要手动抛出异常。
但我现在遇到一个情况,就是在save()
的时候,会报错,因为某个字段里有特殊字符
,又没有做转义处理
,就会报错。
而且如果是一个for loop
里报错,这会导致for loop
退出的,因此要catch
这......
在try catch的一点小体会
这个日记里,写到了,如果数据库保存失败 ,save()
仅仅返回一个false
,因此要手动抛出异常。
但我现在遇到一个情况,就是在save()
的时候,会报错,因为某个字段里有特殊字符
,又没有做转义处理
,就会报错。
而且如果是一个for loop
里报错,这会导致for loop
退出的,因此要catch
这......
遇到一个问题,需要读取本地服务器里的文件,并且用PHPOffice
解析出来。
问题来了,总是file not exist
, 这他妈。。。。
后来发现是路径格式的问题,也就是说,PHPOffice\Phpspreadsheet
这个库里的load函数
,本质上是PHP的fopen
函数,而这个又显然是C语言里的fopen
函数的封装。至于PHP在封装的过程中是否做了什么优化,不得而知,但是呢,参数是文件路径或一个
出现这个问题,通常是php.ini
的问题,当然,肯定也和Nginx或Apache的配置有关。
php.ini
里有2个地方和这个有关:
671行 post_max_size = 50M
824行 upload_max_filesize = 50M
创建一个db:
CREATE DATABASE myDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看一个table里有多少行:
SELECT COUNT(*) FROM myTable;
首先呢,一般的框架都会通过某种机制自动解析namespace
,比如Yii
里,最底层的namespace
是app
,所有的Class
都是在这个app
之下的。
或者,Laravel
框架里,什么都是在Illuminate
这个namespace
之下。
那么,如果想手动添加属于自己的namespace
怎么办?
一般如果做Google Adsense,需要验证网站,那么一般是在HTML代码里加Meta
标签,或者在根目录下,加一个html文件验证。
验证的时候,要放在root directory
,啥意思呢?比如,Laravel框架,要放在public
里,Yii2框架要放在web
里。
总之,是index.php
所在的目录。
验证完毕后,这个html文件不要删了,因为Google还会时不时回头再查看一下。否则没有的话,就会导致网站重......