thinkphp5 连访问数据库时报错utf-8编码错误

thinkphp5 连访问数据库时报错utf-8编码错误,第1张

thinkphp5连访问数据库时报错utf-8编码错误,出现中文乱码的原因就是字符编码不统一,出现中文乱码需要添加如下代码

在D:\phpStudy\PHPTutorial\MySQL下的myini中的mysqld下加如下语句:

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

示例代码如下:

扩展资料:

thinkphp5 连访问数据库时报错utf-8编码错误可能出错的地方:

1 代码文件(判断查看文件编码的最简单的办法是:用记事本打开,然后点击“另存为”,出现的窗口下方有“编码”字样,若不是你想要的编码,改为你的编码后保存覆盖原来的文件即可)。    

2  html 文件头部应加上 <meta >

3 数据库连接代码应选择对应字符编码,mySql 的选择字符编码的代码为:mysql_query("SET NAMES 'utf-8';"); 其他数据库的代码请自行查询。

4 后台程序代码 php 需要注明字符编码,header('Content-Type:text/html。

用遍历

$urls=array();

if($b){

while($row_b=mysql_fetch_array($b)){

$urls[]=$row_b;

}

print_r($urls);

MySQL安装的根目录下有一个配置文件myini,添加sql_mode属性:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES。即可

MySQL 查看数据表结构以及详情的方法:

一、 查看表结构

下面三个是我们最常用的查看数据表结构的语句:

1、desc table

2、describe table

3、show columns from tbale

如果你在控制台一次输入,就会发现这三个语句所打印的结果是一样的。

比如我在本地study_test_db数控中尝试查看info表的结构,结果如下:

二、查看建表语句详情

1、语句:show create table info

2、这里直接回车的话,结果可能比较乱,如果需要的话,可以再后面  ;  处替换为\G,这样结果就会竖直打印,看起来更清晰明白。

3、比如这里我还是以info表为例:

三、通过mysql中自带的information_schema数据库,查看表信息

可以通过查询tables和colums表来查看具体的数据表信息

其中:

1、TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

2、COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemanametablename的结果取之此表。

本文实例讲述了PHP利用pdo_odbc实现连接数据库。分享给大家供大家参考,具体如下:

目的:从sql

server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。

利用pdo

odbc来实现PHP连接数据库:

在PHP配置文件里面开启pdo_odbcdll服务。重启Apache服务器。

在ThinkPHP51的项目中在模块里添加config添加规定好的样式数据库:

代码如下:

<php

return

[

//

数据库类型

'type'

=>

'sqlsrv',

//

服务器地址

'hostname'

=>

'localhost',

//

数据库名

'database'

=>

'mysql',

//

用户名

'username'

=>

'sa',

//

密码

'password'

=>

'123456',

//

端口

'hostport'

=>

'',

//

连接dsn

'dsn'

=>

'odbc:Driver={SQL

Server};Server=localhost;Database=mysql',

//

数据库连接参数

'params'

=>

[],

//

数据库编码默认采用utf8

'charset'

=>

'utf8',

//

数据库表前缀

'prefix'

=>

'',

//

数据库调试模式

'debug'

=>

true,

//

数据库部署方式:0

集中式(单一服务器),1

分布式(主从服务器)

'deploy'

=>

0,

//

数据库读写是否分离

主从式有效

'rw_separate'

=>

false,

//

读写分离后

主服务器数量

'master_num'

=>

1,

//

指定从服务器序号

'slave_no'

=>

'',

//

是否严格检查字段是否存在

'fields_strict'

=>

true,

//

数据集返回类型

'resultset_type'

=>

'array',

//

自动写入时间戳字段

'auto_timestamp'

=>

false,

//

时间字段取出后的默认时间格式

'datetime_format'

=>

'Y-m-d

H:i:s',

//

是否需要进行SQL性能分析

'sql_explain'

=>

false,

//

Builder类

'builder'

=>

'',

//

Query类

'query'

=>

'\\think\\db\\Query',

//

是否需要断线重连

'break_reconnect'

=>

false,

//

断线标识字符串

'break_match_str'

=>

[],

];

>

在控制器controller里面建一个控制文件Testphp

代码如下:

<php

namespace

app\index\controller;

use

think\Db;

use

think\Controller;

class

Test

extends

Controller

{

public

function

zz(){

$data=Db::view('View_2')->select();

echo

json_encode($data);

}

}

>

最后调用入口文件即可访问。

>

用Widget,渲染输出是可以做到的

在Lib/Widget/下新建一个文件命名为TestWidgetclassphp文件:

代码

<php

class TestWidget extends Widget{

public function render($data) {

return $this->renderFile("test_page",$data);

}

}

在Lib/Widget/Test/下新建一个文件test_pagehtml把你上面从数据库中读的代码放入test_pagehtml中。

然后在其它模板中这样调用{:W('Test',array())}

这只是一个基本例子。具体项目中你可以把你从数据库读出的代码动态保存入Lib/Widget/Test/test_pagehtml中。在调用 return $this->renderFile("test_page",$data);

以上就是关于thinkphp5 连访问数据库时报错utf-8编码错误全部的内容,包括:thinkphp5 连访问数据库时报错utf-8编码错误、tp5 查询数据库的数据,并赋值给数组,怎么将赋值后的数组传到视图层、tp5插入mysql数据,用param不能插入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10193742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存