【问题标题】:MySQL's LOWER() and PHP's mb_strtolower() return the same result?MySQL LOWER() 和 PHP mb_strtolower() 返回相同的结果?
【发布时间】:2015-07-30 12:56:50
【问题描述】:

在 PHP 中有一系列函数用于处理包含多字节字符的字符串。
我在这里指的是这个列表:http://php.net/manual/en/ref.mbstring.php

我需要知道 MySQL 的 LOWER() 函数是否等同于 PHP 的 mb_strtolower() 函数。
我想确保这两个函数的结果是相同的。
我将使用 UTF-8 编码的这两个函数。

【问题讨论】:

  • 是的,它们会返回相同的结果。
  • 请确保您使用 MySQL LOWER() 函数将 php 客户端连接设置为 utf8。 php 默认为 latin1。您可以使用此 mysql_set_charset('utf8') 设置 utf8(注意 mysql_* 函数已弃用)mysqli_set_charset('utf8') 或在 de PDO dsn 字符串 "mysql:host=$host;dbname=$db;charset=utf8" 如果您使用较低的 PHP 版本在 5.2.3 之后,您需要在数据库连接代码之后使用查询 SET NAMES utf8
  • 你在 MySQL 中使用了什么 COLLATION
  • @RaymondNijland 我正在使用 mysqli 和 UTF-8,就像你说的那样。
  • @RickJames utf8_general_ci

标签: php mysql string utf-8 multibyte


【解决方案1】:

是的,它们执行相同的功能。

mysql>SELECT LOWER('wOrD'); -> word

php>echo mb_strtolower('wOrD'); -> word

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 2015-02-24
    • 2020-02-15
    • 2013-04-22
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多