php向MYSQL插入中文字符,在页面上显示问号,请问phpmyadmin上怎么设置,php需要添加什么代码?
php代码查询前需不需要添加什么<?phpfunctiondoDB(){$mysqli=mysqli_connect($dbhost,$dbuser,$dbpass,$d...
php代码查询前需不需要添加什么
<?php
function doDB()
{
$mysqli = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n",mysqli_connect_errno());
exit();
}
}
连接数据库并查询:
<?php
include("link.php");
//connect to server and select database
doDB();
//show categories first
$get_cats_sql = "SELECT id, cat_title, cat_desc FROM forum_categories ORDER BY id";
$get_cats_res = mysqli_query($mysqli, $get_cats_sql) ;
mysql连接校对和数据库的表的整理都已改为utf8_unicode_ci,现在就是不知道页面php代码上如何修改 展开
<?php
function doDB()
{
$mysqli = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n",mysqli_connect_errno());
exit();
}
}
连接数据库并查询:
<?php
include("link.php");
//connect to server and select database
doDB();
//show categories first
$get_cats_sql = "SELECT id, cat_title, cat_desc FROM forum_categories ORDER BY id";
$get_cats_res = mysqli_query($mysqli, $get_cats_sql) ;
mysql连接校对和数据库的表的整理都已改为utf8_unicode_ci,现在就是不知道页面php代码上如何修改 展开
6个回答
展开全部
默认编码不一致造成问题
1、数据库创建编码选用一个如gb2312。
2、数据库字符集校对选用一个gb2312,以上两者必须一致。
3、不同编译器或者工具如notepad、vim、editplus,它们默认文件的编码不一致,保存的时候选择相应的字符集保存。
4、页面的环境不一样造成,html中的head中meta中的charset=gb2312即可。
5、浏览器的设置默认编码不一致,有的自动选择,有的默认gb2312,许多页面默认是utf8,造成乱码,php文件采用header('Content-Type: text/html; charset=gb2312');告诉浏览器文本类型是html和字符集是gb2312.,header前面不能有任何输出包括空格,此时可以不使用方法4.
综上所述,乱码的大部分原因。
1、数据库创建编码选用一个如gb2312。
2、数据库字符集校对选用一个gb2312,以上两者必须一致。
3、不同编译器或者工具如notepad、vim、editplus,它们默认文件的编码不一致,保存的时候选择相应的字符集保存。
4、页面的环境不一样造成,html中的head中meta中的charset=gb2312即可。
5、浏览器的设置默认编码不一致,有的自动选择,有的默认gb2312,许多页面默认是utf8,造成乱码,php文件采用header('Content-Type: text/html; charset=gb2312');告诉浏览器文本类型是html和字符集是gb2312.,header前面不能有任何输出包括空格,此时可以不使用方法4.
综上所述,乱码的大部分原因。
展开全部
最佳解决方案,网页字符集 与 数据库字符集相同。
如果你网页字符集与数据库字符集不一样,在输出或者保存时注意转换处理。
如果你网页字符集与数据库字符集不一样,在输出或者保存时注意转换处理。
更多追问追答
追问
代码我已经贴出了,能不能说的详细点
追答
你页面是什么字符集,你的数据库默认是什么字符集。
如果你知道字符集【例如:utf8】
那么在选择数据库后执行 mysql_query("set names utf8");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道你写的mysql_query()是啥意思,一般我里面直接写的发送语句
里面最好是放个变量
e,g $a = 'select id,cat.....';
$b = mysql_query($a);
里面最好是放个变量
e,g $a = 'select id,cat.....';
$b = mysql_query($a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是数据库表或者是数据库表里面的字段的字符设置的不对,你都改成UTF8就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库里显示的是问号还是乱码?还是正常的?
如果数据库是正常的,页面上显示错误,一定是字符集的问题。
如果数据库是正常的,页面上显示错误,一定是字符集的问题。
追问
phpmyadmin上查看显示正常,网页上是问号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表整理改为utf8_general_ci试试,然后把你的PHP输出页面的页面属性改为UTF-8试试,用DW可以改,DW创建的页面默认为GB2312的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询