php 向数据库发送中文字符无法查询

php 向数据库发送中文字符无法查询,第1张

你的问题可能是数据库连接时未指定字符集:$conn->query("set names utf8");

详细如下:

中文字符转换一下,可能你的网页编码是ansi非utf-8的:

$w=iconv("gb2312","utf-8",$w);

不过我不确定这样做你能否成功。关于字符有以下几点你看下:

数据库连接时: $conn->query("set names gbk");

数据库的字符集:建议建立数据库时就指定字符集,比如gbk或者utf-8,这样你就没必要为单独的表或者字段指定字符集

网页字符:<META CONTENT="text/html; charset=gbk" >

保持着三者使用的字符集一样,基本能解决你的问题。

当然,在使用ajax时。js传递过来的是utf-8,如果你的php文件和数据库使用的是中文字符集如gbk,gb2312,那么就需要对该值用iconv函数转换下字符集,如:$w=iconv("utf-8","gb2312",$w);

总之,需要这几块的字符集保持一致。

你把 BDE Administrator 的 configuration->drivers->native->SYBASE 的 DLL32 改成 SQLSSC32DLL就行了!

mysql数据库的编码和输出网页的编码不一样,可以把这段编码放在你网页原件PHP执行mysql程序的前面试试:mysql_query("set names utf8"),把你utf8换成你网页的编码,如: gbk,gb2312

同时祝你好运!

老兄啊 当然有问题啦

Connection conn=DBUtilgetConnection();

PreparedStatement ps;

String sql="select from department where dept_name like '%"+name+"%'";

ps = connprepareStatement(sql);

Systemoutprintln("sql---"+sql);

ResultSet rs=psexecuteQuery();

Systemoutprintln(rs);

while(rsnext()){

在这里你使用了预编译prepareStatement,但在在写SQL语句的时候你又用了字符串拼接,如果 你要使用字符串拼接,那么你就直接将这个查询的 *** 作写到一个方法里面,然后将name的值当作参数传递进来。如果你想使用预编译,这里你就应该将name写成,然后用psset(1,value)。我分析你的原因就是,你用了预编译却没有用set()方法赋值,用了字符串拼接却没有参name的值进来,最后like '%"+name+"%'"中的name始终是空的,所以查询不到结果!

以上就是关于php 向数据库发送中文字符无法查询全部的内容,包括:php 向数据库发送中文字符无法查询、我的delphi浏览数据库库不能显示中文、我的php不能显示mysql数据库中的中文等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9880273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存