php读取数据库汉字字段,php读取数据库内容显示

php操作数据库WHERE语句查询中文报错,无法读取数据?

MYSQL的字段名转义使用返引号`,不是单引号,注意上面代码的下面部分:

站在用户的角度思考问题,与客户深入沟通,找到阳谷网站设计与阳谷网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖阳谷地区。

WHERE '账户'='中文'; //查询中文字报错,数字字母都能正常查询

【账户】是字段名,应使用反引号:

`账户`

【中文】是常量,单双引号都可以,但是要注意你现在的语句是在单引号里面,因此应该转义或者使用双引号,这部分可以修改为:

WHERE 账户="中文"';

另外,如果只是查询中文内容才报错,可能你粘贴代码和原始代码有区别,原始代码没有把字段名放在单引号里面,否则是查不到内容的。查询中文内容报错,一般是中文的编码和网页文件的编码、以及数据库的编码不一致,你这来数据库是UTF8,那么PHP脚本文件、浏览器网页都必须使用UTF-8

php调用数据库字段

我说一下几个步骤:

1、首先你得有一个存储这些数据的数据库表,比如数据库表的结构是这样的。

数据库表名为:user

字段:编号(id),姓名(name),手机(mobile),产品名称(productName) 主键为id

2、实现你需要的功能:

第一步:你需要连接数据库,有一个连接数据库的文件:conn.php。内容如下:

// 我假设你的数据库是mysql的,假设你的数据库用户名为root,密码为123456,根据你数据库的实际情况改写成你的。数据库名称假设为db_889888658

?php

$conn=mysql_connect("localhost","root","123456") or die("数据库连接失败,请检查用户名或密码");

mysql_select_db("db_889888658",$conn);

mysql_query("SET NAMES 'gb2312'");

?

第二步:你需要一个添加数据的表单,就相当于一个注册或添加数据的页面。如文件为:add.html内容如下:

form action="reg.php" method="post"

input type="text" name="name"br/

input type="text" name="mobile"br/

input type="text" name="productName"/br

input type="submit" name="submit" value="添加数据"

/form

第三步:写一个处理你表单提交的数据的文件reg.php。内容如下:

?php

include "conn.php";

if(isset($_POST["submit"])){

$name=$_POST["name"];

$mobile=$_POST["mobile"];

$productName=$_POST["productName"];

$sql="INSERT INTO 'user'(id,name,mobile,productName) VALUES (NULL,$name,$mobile,$productName)";

$query=mysql_query($sql);

$num=mysql_affected_rows($conn);

if($num=1){

echo "scriptalert('数据添加成功');location.href='add.html';/script";

}else{

echo "scriptalert('数据添加失败');history.back();/script";

}

}

?

第四步,第三步已经实现你说的第一个功能。下面说一下你的第二个功能。写一个表单,输入你要查询的手机号,点击“查询”按钮查询你想要的字段。

?php

if($_POST["submit"]){

$mobile=$_POST["mobile"];

if(!empty($mobile)){

include "conn.php";

$sql="SELECT * FROM 'user' WHERE 'mobile'='$mobile'";

$query=mysql_query($sql);

while($rs=mysql_fetch_array($query)){

$str="查询结果:br/";

$str.="用户名:".$rs["name"]." ";

$str.="产品名:".$rs["name"]." ";

}

echo "您查询的手机号为".$mobile."的数据信息如下:br/";

echo $str;

}else{

echo "请输入手机号";

}

}

?

form action="" method="post"

请输入您要查询的手机号:input type="text" name="mobile" input type="submit" name="submit" value="查询"

/form

用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示?

数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。

事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。

转自:

PHP mysql 如何将从数据中读入的中文乱码转换成中文字符?

要解决乱码首先需要知道出现乱码的原因:

一、PHP+MySQL出现中文乱码的原因。

1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。

2. 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.

3. PHP页面的字符集与数据库的编码不一致。

4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致。

5. 用户提交的HTML页面编码,和显示数据的页面编码不一致 ,就肯定会造成PHP页面乱码.

二、解决中文乱码:

1. 网页编码设置。一般在HTML代码中的文件头html中加入属性:

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″

保证,网页是"utf-8"编码。

2. PHP代码设置。在php代码的开始部分加入以下代码:

header(”Content-type: text/html;charset=utf-8″);

且要求保存的文件编码方式是utf-8,这样就保证了该文件也是utf-8编码。

3. 数据库中表的字段中存储中文的部分,要设置为utf8_general_ci类型。

4.PHP在连接数据库操作时,要设置操作的字段类型为utf8,设置方法如下:

mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(”set names utf8;”); //**设置字符集***

php中获取数据库中字段值。

取到值后,在输出的时候%=变量*100%/100,这样用PHP把数据输入,后面跟/100的字符就可以了。


文章标题:php读取数据库汉字字段,php读取数据库内容显示
浏览路径:http://pwwzsj.com/article/hosihi.html