php7.2连接mysql8_☆兼容 php7.2及mysql 8

# 兼容 php 7.2 及 mysql 8

[![](http://static.phpgrace.com/statics/images/video2.png)](https://ke.qq.com/course/310478)

**兼容 php 7.2**

php 7.2 废弃了 create\_function 函数,为了更好的兼容我们去除了 tool 方法;

请大家在自定义工具类时遵循命名空间,第三方工具类使用时手动 include 并遵循 \\ 顶级命名空间调用,如 :

~~~

$tool = new \xxxTool();

~~~

**兼容 mysql 8**

php 与 mysql 8 连接会报错 :

~~~

报错:PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers

~~~

原因 :

~~~

由于Mysql8.0将默认的字符集改为了utfmb4,因此和客户端(不仅仅是PHP)的通信无法识别,我们需要更改my.cnf来指定字符集。

~~~

解决方案 :

修改 mysql 8 配置 : my.ini 调整编码

~~~

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=D:\mysql8

# 设置mysql数据库的数据的存放目录

datadir=D:\mysql8\Data

#忘记密码时使用

#skip-grant-tables

#设置协议认证方式(重点啊)

default_authentication_plugin=mysql_native_password

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

character-set-server = utf8

~~~

**\*\*\* graceCms 付费用户调整 \*\*\*

****1\. 打开 admin/controllers/ccode.php, 替换 函数内容**

~~~

public function fields(){

if(empty($this->gets[0])){$this->json('参数错误', 'error');}

$db  = db($this->gets[0]);

$pdo = $db->pdo;

$sta = $pdo->prepare(

'select ORDINAL_POSITION,COLUMN_NAME ,DATA_TYPE, COLUMN_COMMENT

from information_schema.columns where table_schema = ? and table_name = ?

order by ORDINAL_POSITION asc');

$sta->execute(array(sc('db','dbname'), sc('db','pre').$this->gets[0]));

$fields = $sta->fetchAll(\PDO::FETCH_ASSOC);

if(empty($fields)){

$this->json('数据表名称错误', 'error');

}

$str = '';

$checkType = '

int

string

between

betweenD

betweenF

same

sameWith

notSame

email

phone

zipCode

reg

fun

';

foreach($fields as $field){

$str .= '

'.$field['COLUMN_NAME'].''.$checkType.'';

}

$this->json($str, 'ok');

}

~~~

**2\. 打开 phpGrace.php 删除 tool 函数的定义;**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值