欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 制作注册页面 中文无法存入sql 求解

程序员文章站 2022-05-16 08:30:29
...
用html制作了一个注册页面,提交到php页面,用post方法传送数据,但是文本框中输入了中文无法存入sql数据库中。求解,下面是关键代码:
======================================================================================
$userid=$_POST['userid'];
$username=$_POST['username'];
$userpwd=$_POST['userpwd'];
$userage=$_POST['userage'];
$usersex=$_POST['usersex'];
$conn=mysql_connect("localhost","root","");

mysql_select_db("newdb",$conn);

$sql="INSERT INTO usersinfo (userid,userpwd,username,userage,usersex)values('$userid','$userpwd','$username','$userage','$usersex')";
mysql_query("set names 'utf8'");
$query=mysql_query($sql,$conn);
======================================================================================
userid usepwd userage 这三项为数字,可以存入sql数据库中,但是username usersex无法存入,
打开phpmyadmin 查看数据库,发现中文的那几栏都只有一个空格,存进去失败了。
不知道出现什么问题,添加了:
echo $userid."
";
echo $username."
";
echo $userpwd."
";
echo $userage."
";
echo $usersex."
";
发现可以正常输出任何变量,说明不是取值问题,是存入数据库的时候出问题了,我想是不是数据编码的问题..?


回复讨论(解决方案)

可否把数据库表结构贴出来看看是不是数据库字段类型的问题

一般是字符编码问题,可能你页面是GB2312数据库是UTF8,你用iconv("gbk","utf-8",$_POST['xx'])转下

可否把数据库表结构贴出来看看是不是数据库字段类型的问题

这是我的数据库表结构

一般是字符编码问题,可能你页面是GB2312数据库是UTF8,你用iconv("gbk","utf-8",$_POST['xx'])转下

这是我的phpdesigner的文件编码方式,数据库用的是utf8

插不进去就会报错!
echo mysql_error();
就可知道问题的症结



插不进去就会报错!
echo mysql_error();
就可知道问题的症结

按版主所说的设置了,但是还是添加不上,没有出错显示,检查数据库表发现存进去了,存进去的是一个空格
如图.

一般是字符编码问题,可能你页面是GB2312数据库是UTF8,你用iconv("gbk","utf-8",$_POST['xx'])转下
按这样改正确了!..但是输出到页面上又变成乱码...不知是何问题..


一般是字符编码问题,可能你页面是GB2312数据库是UTF8,你用iconv("gbk","utf-8",$_POST['xx'])转下
按这样改正确了!..但是输出到页面上又变成乱码...不知是何问题..
那是因为你页面和数据库字符编码不一致,以后设计的时候要两边一致,现在么,用iconv再转回去好了。



发一个 Ecshop 给你看一下。

另外网页代码编码,也需要用跟数据库一致才行。


插不进去就会报错!
echo mysql_error();
就可知道问题的症结

按版主所说的设置了,但是还是添加不上,没有出错显示,检查数据库表发现存进去了,存进去的是一个空格
如图. 我跟你说怎么设置了吗?
我只告诉你如何查找原因
你都没有把错误信息贴出来,我怎么可能告诉你该怎么做



插不进去就会报错!
echo mysql_error();
就可知道问题的症结

按版主所说的设置了,但是还是添加不上,没有出错显示,检查数据库表发现存进去了,存进去的是一个空格
如图. 我跟你说怎么设置了吗?
我只告诉你如何查找原因
你都没有把错误信息贴出来,我怎么可能告诉你该怎么做
额..我的意思是把那行提示出错内容的代码添加了,然后没有错误提示...然后自己检查了数据库,发现其实存进去了,但是存进去的是空格...

user_id应该设置自动增长属性