php mysql 连接 utf-8,查询中的问题(PHP MYSQL UTF-8)

在阅读了这里和其他地方的许多提示后,我想我终于完成了我的GET查询,PHP和MYSQL都在谈论utf8.但是,我无法得到一个简单的查询来处理我匹配的字符串包含非ascii字符.我的(简化)代码是:

$link = mysql_connect("h", "u", "p") or die(mysql_error());

mysql_select_db("db", $link) or die(mysql_error($link));

mysql_set_charset("utf8", $link); //connection charset

$name = mysql_real_escape_string($_GET['first'], $link);

$query = sprintf("SELECT name, date FROM guestbook WHERE name='%s'", $name);

$result = mysql_query($query, $link) or die(mysql_error());

if (mysql_num_rows($result) == 0) {

...

}

如果’first’是ascii,则查询有效,如果它包含重音字符则不然.当我打印出db(在php生成的表中)时,它看起来很好,就像在phpadmin中查看一样.

我究竟做错了什么?我需要告诉’=’运算符使用utf8吗?为什么?

谢谢

ABO

解决方法:

表本身的字符集是什么?

此外,尝试在连接后运行以下查询:

SET NAMES UTF8;

标签:php,mysql,utf-8

来源: https://codeday.me/bug/20190621/1253484.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值