Mysql版本必须大于5.5.3,因为5.5.3 之后才出了utf8mb4 我理解的utf8mb4就是utf8的升级版,Emoji表情是4字节,而 utf8 最大只能容纳三个字节。 开始步骤: 备注:这里我用的是win为例,数据库版本为5.7.26,TP5.0.2 步骤一:  1,修改mysql的配置文件 my.ini ,(windows系统本文件在 D:\phpstudy_pro\Extensions\MySQL5.7.26(我的是D盘,大家根据自己的安装目录)) [client] default-character-set=utf8mb4 [mysqld] character

hash_hmac (PHP 5> = 5.1.2,PHP 7,PECL哈希> = 1.1) hash_hmac — 使用HMAC方法生成键控哈希值 描述 hash_hmac (字符串 $algo ,字符串 $data ,字符串 $key [, bool $raw_output=FALSE ]):字符串 参量 algo 所选哈希算法的名称(即“ md5”,“ sha256”,“ haval160,4”等。)有关受支持算法的列表,请参见hash_hmac_algos()。 data 要散列的消息。 key 用于生成消息摘要的HMAC变体的共享

在thinkPHP模型查询中,一般有两种方式:数组方式和闭包方式,相对于数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序,数量限制等。 在thinkPHP闭包查询中通常使用use进行参数传递 重点:添加use($type)就可以了 普通闭包查询: $items=ItemModel::all(function($query){$query->order('sort','asc');}); 带参数的闭包查询: $type = '1' $items=ItemModel::all(function($query)use($type)

//php数组转使用逗号隔开的字符串         //解决方法:         $arr = array('lastname', 'email', 'phone');         if($arr){         $gouwutype = implode(",", $arr);//结果'lastname,email,phone'         }

用模型查询数据的时候想把数据结果处理后返回客户端,如果没配置输出是Array就会报Call to a member function toArray() on array这样的错误。 示例代码:  public function read($id)     {         $arr = Test::where(['status' => 1])->where('id',$id)->select();         if($arr){             $arr = collection($arr)->toArray();             array_walk($arr, function(&$t) {           ?

写一个公共类,把需要的条件添加好,然后继承,举个栗子:如果每张表都有status字段,每次查询都有加上这个status=1的条件判断,这是就需要全局查询范围了,代码如下: namespace app\index\model; use think\Model; class User extends Model {    // 所有的查询都会自动添加查询条件 status = 1       protected static function base($query){   // 5.0.2版本之前需要使用static定义         $query -> where('status',1);     }

在创建数据的时候需要验证form表单提交的所有数据,防止有人恶意写入,接下来分别介绍以下TP5自带的字段过滤方法 Request::only方法:获取指定的参数,相反的Request::except是排除指定参数获取 举个栗子: $arr = $this->request->only('name,email');  User::save($arr); allowField()方法:如果你通过外部提交赋值给模型,并且希望指定某些字段写入,可以使用: 举个栗子: $user = new User($_POST); // post数?

$file = request()->file('fileImg'); $filename ='img.txt'; $test = json_encode($file->getInfo(),true); $Ts=fopen($filename,"a+"); fputs($Ts,"执行日期:"."\r\n".date('Y-m-d H:i:s',time()). ' ' . "\n" .$test."\n"); fclose($Ts); // linux的换行是 \n windows是 \r\n // FILE_APPEND 不写第三个参数默认是覆盖,写的话是追加 print_r($file); // exit();

有时候查询数据时只想查询一个字段值,使用"getBy+name"查询,举个例子: // 检测用户名或邮箱、手机号是否存在 if (UserModel::getByUsername($username)) { $this->error('Username already exist'); return false; }

在输出模板的时候在前端调用后台自定义方法 使用方法如下: {:action('api/v1/token/index')} 全部代码: <!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <form id="target" action="" method="get" submit="return false" style="width: 90%;margin:auto;text-align: center;"> <input type="text" name="account" placeholder="请输?