php - MYSQL字符计数错误

标签 php mysql sql database pdo

我有这个多字节阿拉伯文本字符串:

فتكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس  
وفضفضة وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأةفتكات اكبر تجمع عربي للنساء فقط 
صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة وازياء ومحجبات وهوايات ومو

在字符串上运行 PHP mb_strlen 函数时,我得到了 255 个字符,这是正确的。

然后我尝试将字符串插入到带有 VARCHAR(255) 的列中使用PHP 然后我使用 PHP 再次从数据库中选择它,输出如下:

تكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة 
وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأ�

如您所见,几乎一半的字符串已被截断。我不知道这与 MYSQL 或 PHP 输出有关。

这是我的数据库规范: MYSQL 5+,引擎=InnoDB,默认字符集=utf8,utf8_general_ci

在 PHP 中,我使用 PDO 语句来连接、插入数据库并从数据库中选择。

在插入或从数据库中选择时是否需要使用任何额外的查询,或者在插入或选择期间必须使用任何 PHP 函数?

最佳答案

我找到了答案:

只需将以下参数添加到 MYSQL PDO 连接即可:

mysql:charset=utf8;

当然还要确保数据库有 DEFAULT CHARSET=utf8, utf8_general_ci 页面上的这个元标记:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

关于php - MYSQL字符计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979010/

相关文章:

c# - 如何在一个模型中选择不同表格的内容

sql - 匹配所有可能值的值(当然 null 除外)?

php - 将字段添加到选项页面

javascript - 每次有人插入数据库时​​ PHP MYSQL Javascript 都会播放音频

php - 如何对查询结果求和

php - 如何在mysql中连接两列与连接表

php - 计算大于 20 的值的数量

php - 外部数据库连接 -(安全地) - MySQL/PHP

php - preg_match 和关键字中的特殊字符不起作用

php - Joomla - 在较小的分辨率下隐藏响应模块的一部分(手机)