广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php放入数据库的信息乱码怎么办
  • 336
分享到

php放入数据库的信息乱码怎么办

php乱码数据库 2023-05-14 20:05:37 336人浏览 独家记忆
摘要

PHP放入数据库的信息乱码的解决办法:1、修改html文件编码为“<meta charset="gbk" />”;2、在php文件中添加“header("Content-Type:text/html

PHP放入数据库的信息乱码的解决办法:1、修改html文件编码为“<meta charset="gbk" />”;2、在php文件中添加“header("Content-Type:text/html;charset=utf-8");”;3、通过在控制台窗口中输入“set names gbk;charset gbk;”设置Mysql编码;4、重启浏览器和服务器即可。

php放入数据库的信息乱码怎么办

教程操作环境:windows7系统、PHP5.4版、DELL G3电脑

php放入数据库的信息乱码怎么办?

php写入mysql数据库的中文乱码问题

一、问题呈现

以下为两个关键的文件。其中的html向用户获取数据输入,php实现将这些数据写入到数据库。

18.8.html

<!doctype html><html><head>
	<meta charset="utf-8" /><title>添加信息</title></head><body>
	<h2>添加员工信息</h2>
	<fORM action="18.8.php" method="post" >
		员工姓名:		<input name="name" type="text" size="20" /> <br />
		员工年龄:		<input name="age" type="text" size="3" /> <br/>
		员工工资:		<input name="salary" type="text" size="6" /> <br />
		<input name="submit" type="submit" value="上传数据" />
	</form></body></html>

18.8.php

<?php
header("Content-Type:text/html;charset=utf-8");
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];

$servername = "localhost";
$username = "root";
$passWord = "root";
$dbname = "mytest";

// 创建连接
$db = new mysqli($servername,$username,$password,$dbname);
$db->query("SET NAMES gbk");
//检测连接
if(!$db){
	die("数据库连接失败:".mysqli_connect_error());
}
//$q = "select * from employee";
$q = "INSERT INTO employee(name,age,salary)
VALUES('$name',$age,$salary)";

if(!mysqli_query($db,$q)){
	echo "员工信息添加失败";
}else{
	echo "员工信息已经成功添加";
};
mysqli_close($db);
?>
  1. 搭建了本地测试站点mytest,将这两个文件置于站点文件夹下。在这里插入图片描述

  2. 启动phpstudy

7340dc4c89e6a5624e4492d52d47969.jpg

  1. 在mysql中创建所需的数据库的数据表,代码如下
create database mytest;use mytest;create table employee(
	id integer primary key,
	name char(10),
	age integer,
	salary float);

1b632b264636b612c8aebbe18c5f826.jpg

  1. 在浏览器中访问网址
   Http://localhost:80/mytest/18.8.html

PS:访问站点时的端口号需要与站点设置的端口号相同,这里设置站点时指定端口为80,
41e52b1c71994b27f8ac06501d2967c.jpg

  1. 输入数据,点击上传数据

7e169503896e91bfe2e45d73a3bca5f.jpg

跳转到18.8.php页面,提示数据添加成功
d39c8cc9819c7ef7969923c6b492da1.jpg

  1. 在mysql控制台中查看已添加的数据

    代码如下

   set names gbk;
   charset gbk;
   set character_set_server=gbk;
   set character_set_database=gbk;
   select * from employee;

PS:前四行代码用于设置mysql的编码格式,使mysql能够正常显示中文。

输出结果如下:

在这里插入图片描述

问题出现,即name对应的数据李逍遥被显示为乱码鏉庨?閬


二、问题处理

不难猜测,这个中文乱码问题和htmlphpmysql的编码不一致有关。

根据测试,按照如下进行修改即可。

1.对于18.8.html

	<meta charset="utf-8" />

改为

	<meta charset="gbk" />

即指定18.8.html的编码为gbk

2.对于18.8.php

保持

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

不变。

即保持18.8.php的编码格式为utf-8

3.对于mysql

在控制台窗口中输入如下代码

set names gbk;charset gbk;set character_set_server=gbk;set character_set_database=gbk;

即设置mysql的编码为gbk

4.删除之前录入的信息

代码如下

use mytest;delete from employee;

显示删除成功

在这里插入图片描述

5.重新录入数据

07a1c8bbd25ceccc91ae2e43f3243f2.jpg

0691d7385d350ad5d1bd0b48672e783.jpg

6.在数据库中查看录入的数据
use mytest;select * from employee;

在这里插入图片描述

中文显示成功!

三、问题分析及补充

上述流程,很好地印证我们的猜测——这个中文乱码问题和htmlphpmysql的编码不一致有关。

解决问题的关键,便是将编码格式进行统一。

我们将html和mysql设置为gbk编码。

那么问题来了!

1.为什么php的编码格式不用与html和mysql进行统一呢?

因为html从用户获取输入,则这些数据遵循与该html页面相同的编码格式,即gbk。

在18.8.php中,仅仅只是将获取的数据写入mysql数据库,没有对接收到的数据进行二次处理(比如编码),所以php的编码格式为utf-8时,对于该中文乱码问题无直接影响,可以不进行修改。

在mysql中,因为从页面中获取并写入的数据遵循gbk编码,所以只需要设置mysql的编码格式为gbk,即可正常显示中文数据了。

2.我把php的编码格式也设置为gbk,怎么php页面也出现乱码了?

即改header为

header("Content-Type:text/html;charset=gbk");

php页面显示为
在这里插入图片描述

这时同样出现中文乱码的情况,不同的是,这是由于php页面本身的编码不匹配导致。

3.为什么我一波操作下来,还是中文乱码呀?

在我撰写这篇博客的期间,不止一次遇到这样的情况。

所有的操作都准确无误,但是结果依然是乱码,和原来的结果没有任何区别。

如果您也遇到这样的问题,可以尝试:

  • 重启浏览器和服务器(即phpstudy)

  • 清理浏览器缓存

  • 重新输入数据(这是必须的)

  • 更换浏览器做测试

推荐学习:《PHP视频教程》

以上就是php放入数据库的信息乱码怎么办的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: php放入数据库的信息乱码怎么办

本文链接: https://www.lsjlt.com/news/203697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php放入数据库的信息乱码怎么办
    php放入数据库的信息乱码的解决办法:1、修改HTML文件编码为“<meta charset="gbk" />”;2、在PHP文件中添加“header("Content-Type:text/html...
    99+
    2023-05-14
    php 乱码 数据库
  • php放入数据库的信息乱码如何解决
    本篇内容主要讲解“php放入数据库的信息乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php放入数据库的信息乱码如何解决”吧!php放入数据库的信息乱码的解决办法:1、修改HTML文...
    99+
    2023-07-05
  • php 微信返回的消息是乱码怎么办?
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php 微信返回的消息是乱码怎么办PHP微信发送推送消息乱码的解决方法先用urlencode是因为中文在数组转json时会被编码为unicode,微信接口无法识别,所以得...
    99+
    2020-02-23
    微信 乱码 php
  • php向mysql数据库传入字符串乱码怎么办
    php向mysql数据库传入字符串乱码的解决办法:1、通过“show variables like 'character%';”查看数据库编码方式;2、通过“set character_set_server = 'u...
    99+
    2023-05-14
    php 数据库 乱码
  • MySQL数据库导入数据后是乱码怎么办
    这篇文章主要介绍“MySQL数据库导入数据后是乱码怎么办”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库导入数据后是乱码怎么办”文章能帮助大家解决问题。导入数据时,有以下几个方面会影响...
    99+
    2023-06-26
  • php数据传入数据库乱码怎么解决
    随着互联网技术的发展,PHP已经成为了不可避免的一门编程语言。然而,尽管PHP的易用性和灵活性得到了广泛的认可,但是,开发者仍然经常遭遇一些技术问题,而其中最常见的问题莫过于传入数据库的乱码问题。本文将会深入探讨这一问题的根源,以及对应的解...
    99+
    2023-05-14
    php 数据库
  • php与数据库交互式乱码怎么办
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。PHP与SQL数据库交互中文乱码怎么办?1 PHP向数据库写入的时候发生乱码 如图所示,把校对放过去看看,是不是别的什么语言 点击修改把字符编码改为utf8_gener...
    99+
    2019-03-29
    php 数据库
  • 数据库中编码乱码怎么办
    小编给大家分享一下数据库中编码乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 使用 <META http-e...
    99+
    2022-10-19
  • mysql数据库中文乱码怎么办
    这篇文章主要介绍mysql数据库中文乱码怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql中文乱码的解决办法:1、在linux环境下找到my.cnf文件并进行编码修改;2...
    99+
    2022-10-18
  • mysql导入数据乱码错误怎么办
    mysql导入数据乱码错误怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 一、错误问题描述:...
    99+
    2022-10-18
  • nodejs和C语言插入mysql数据库乱码怎么办
    这篇文章将为大家详细讲解有关nodejs和C语言插入mysql数据库乱码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在这里记录了nodejs过程中的一些乱码情况,...
    99+
    2022-10-19
  • 怎么解决PHP插入数据库乱码问题
    这篇文章主要介绍“怎么解决PHP插入数据库乱码问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么解决PHP插入数据库乱码问题”文章能帮助大家解决问题。一、检查数据库字符集在开始解决问题之前,首先...
    99+
    2023-07-05
  • sqlldr导入数据时中文乱码怎么办
    本篇内容介绍了“sqlldr导入数据时中文乱码怎么办”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 之...
    99+
    2022-10-18
  • php上传中文数据乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php上传中文数据乱码怎么办?首先看图前面是错误的,后面改好了1.在php的编码中修改字符集header("Content-Type: text/html;...
    99+
    2022-10-25
  • 表单传送数据到php乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。表单传送数据到php乱码怎么办?php 页面表单提交到php中乱码问题html->php 表单提交中文乱码问题解决方案如下:1. html中的head处添加&...
    99+
    2022-11-10
  • php json数据中文乱码问题怎么办
    php json数据中文乱码问题的解决办法:1、打开相应的php文件;2、在“json_encode()”方法中添加一个参数“JSON_UNESCAPED_UNICODE”即可正常输出中文。本教程操作环境:Windows10系统、PHP8....
    99+
    2023-05-14
    php json
  • springboot与数据库返回数据中文乱码怎么办
    小编给大家分享一下springboot与数据库返回数据中文乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题描述:使用springboot操作数据库时,...
    99+
    2023-06-22
  • 怎么获得SQL数据库信息的代码
    怎么获得SQL数据库信息的代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 代码如下: SELECT Name FR...
    99+
    2022-10-18
  • php微信返回的消息是乱码怎么解决
    本篇内容介绍了“php微信返回的消息是乱码怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php微信返回消息是乱码的解决办法:1、创建...
    99+
    2023-06-21
  • php数据库的乱码问题怎么解决
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php数据库的乱码问题怎么解决?乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了号。症状:用PH...
    99+
    2022-11-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作