php mysql中文传入_php在URL中传递中文参数,插入到mysql乱码问题

你的位置:

问答吧

-> PHP基础

-> 问题详情

php在URL中传递中文参数,插入到mysql乱码问题

我需要在url中直接带sql语句,插入到数据库,

http://localhost/insert.php?s=insert+into+members+(uid,username)+values+(null,'蓝色')

这样插入的是乱码,中文变成了 %C0%B6%C9%AB ,英文和数字一切正常。请问如何解决,谢谢

include("conn.php");

$s=urlencode($_GET['s']);

$s = str_replace('+','%20',$s);

$s = str_replace('%2C',',',$s);

$s = str_replace('%27','\'',$s);

$s = str_replace('%28','(',$s);

$s = str_replace('%29',')',$s);

$s = str_replace('%20',' ',$s);

$s = str_replace('%5C','',$s);

$SQL="$s";

$query=mysql_query($SQL);

$err=mysql_error();

if($err){

echo "error:".mysql_error();

}else{

echo "success";

}

mysql_close($conn);

?>

作者: luzhichu

发布时间: 2011-10-09

$s=urlencode($_GET['s']); ?

为什么要对传递过来的值进行 urlencode?就算是要也是 urldecode吧?

作者: PhpNewnew

发布时间: 2011-10-09

你这个是 JS 传递的 数据吧?

http://localhost/insert.php?s=insert+into+members+(uid,username)+values+(null,'蓝色')

js 传递过来 看你的页面 数据库是不是UTF-8,是的话可以直接插数据库的.

作者: PhpNewnew

发布时间: 2011-10-09

数据库是gbk的,这个是直接执行的HTTP页面,没有从别的地方提交

作者: luzhichu

发布时间: 2011-10-09

diao.带sql数据的参数,怕别人看不到你表结构么?

作者: ohmygirl

发布时间: 2011-10-09

那你的sql 不能直接写吗?

http://localhost/insert.php?s=insert into members (uid,username) values (null,'蓝色')

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

$s=$_GET['s'];

echo $s;//debug

$SQL=$s;

mysql_query( "set names 'GBK ' ");

mysql_query($SQL);

//=============

这样就可以了吧?

作者: PhpNewnew

发布时间: 2011-10-09

搞科研的... ...

引用 4 楼 ohmygirl 的回复:

diao.带sql数据的参数,怕别人看不到你表结构么?

作者: PhpNewnew

发布时间: 2011-10-09

发送前用encodeURIComponent对参数编码

另外你的SQL语句可以在服务器端构建的

作者: whg4585

发布时间: 2011-10-09

输出来的是 insert into pre_ucenter_members (uid,username) values (null,\'蓝色\')

插入到数据库还是乱码

作者: luzhichu

发布时间: 2011-10-09

呵呵,就算联系也不带直接在地址栏里面写sql语句的吧

作者: yunprince

发布时间: 2011-10-09

引用 8 楼 luzhichu 的回复:

输出来的是 insert into pre_ucenter_members (uid,username) values (null,\'蓝色\')

插入到数据库还是乱码

你数据库\数据表 应该不是gbk编码吧?确认弄清楚

作者: PhpNewnew

发布时间: 2011-10-09

全部使用统一的编码

UTF-8

作者: happypiggy2010

发布时间: 2011-10-09

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值