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不能插入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)