php文件和mysql数据库编码问题

php文件和mysql数据库编码问题,第1张

文件编码需要做到三个编码一致,如果你做到以下三个编码一致就永远不会出现乱码了!!!!!

(1)数据编码

数据库编码注意的是数据库表字段的编码和数据库客户端编码,比如表字段的编码是UTF-8, *** 作数据库PHP文件编码是GB2312, 怎样才不会出现乱码呢?这个时候就要用SET NAMES GB2312来设置数据库服务器的客户端的编码,这样数据库服务器就会自动将数据库中编码为UTF-8的数据自动转化为GB2312,在接收的PHP文件就保证收到的数据不会有乱码

(2)PHP文件编码

也就是你在保存文件时选择的文件编码,如果不是当前你想要的编码可以通过“另存为”改变编码

(3)HTML中<meta http-equiv="content-type" content="text/htmlcharset=gb2312"/>设置客户端浏览器显示数据的编码,其本质是设置HTTP中Content-Type报头的值,PHP中要做到这一点可以用 header("content-type:text/htmlcharset=gb2312")

做到上面各编码一致的编码一致,不会出现乱码的!!

1,可以将A提交的数据放入数据库中,然后再B用户查看的地方读取出来A提交的数据。

2,将A提交的数据保存在memcache中。然后在B用户查看处从memcache中读取出来。

3,将A提交的数据保存在文件中,然后在B用户查看处从文件中读取出来(一般不用此种方式。)

小结:以上3中方法都是先存储了数据,然后再读取,而存数据的方法无非是存在数据库,memcache缓存或者文件中。

php 和html 混编  看起来真是 DT

文件名为t1.php 已经过调试  没有加错误捕捉 表名 tttt

<?php

header("Content-Type: text/html charset=utf-8")

$dbhost ="127.0.0.1"

$dbuser = "root"

$dbpwd = "*****"

$dbname = "*****"

$charName = "'UTF8'" //设置查询字符集gbk,gbk2312,utf-8

$mysqli = new  mysqli($dbhost,$dbuser,$dbpwd,$dbname)

if (mysqli_connect_errno()){ //注意mysqli_connect_error()新特性

die('Unable to connect!'). mysqli_connect_error()

}

$sql = "SET NAMES ".$charName

$mysqli->query($sql)

$perNumber=50 //每页显示的记录数

$page=isset($_GET['page'])?$_GET['page']: 1  //获得当前的页面值

//echo $page

$sql="select count(*) as count from tttt"

$rs=$mysqli->query($sql) //获得记录总数

$row=mysqli_fetch_array($rs,MYSQLI_ASSOC) 

$totalNumber=$row['count']

$totalPage=ceil($totalNumber/$perNumber) //计算出总页数

$startCount=($page-1)*$perNumber //分页开始,根据此方法计算出开始的记录

$result=$mysqli->query("select * from tttt order by id desc limit $startCount,$perNumber") //根据前面的计算出开始的记录和记录数

$maxPageCount=10 

$buffCount=5

$startPage=1

if  ($page< $buffCount){

$startPage=1

}else if($page>=$buffCount  and $page<$totalPage-$maxPageCount  ){

$startPage=$page-$buffCount+1

}else{

$startPage=$totalPage-$maxPageCount+1

}

$endPage=$startPage+$maxPageCount-1

$htmlstr=""

$line=1

while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){

$htmlstr.=$line."行"

$htmlstr.=$row['id']." </br>"

$line++

$htmlstr.="<table><tr>"

if ($page > 1){

$htmlstr.="<td> <a href='t1.php?page=". 1 ."' >第一页</a> </td>"

$htmlstr.="<td> <a href='t1.php?page=". ($page-1) ."' >上一页</a> </td>"

}

for ($i=$startPage$i<=$endPage $i++){

$htmlstr.="<td><a href='t1.php?page=".$i."'>".$i."</a></td>"

}

if ($page<$totalPage){

$htmlstr.="<td><a href='t1.php?page=".($page+1) . "' >下一页</a> </td>"

$htmlstr.="<td><a href='t1.php?page=".$totalPage . "' >最后页</a> </td>"

}

$htmlstr.="</tr></table>"

echo   $htmlstr

?>


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

原文地址:https://www.54852.com/zaji/8614186.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存