带有特殊字符的php mysql搜索

标签 php mysql mysqli

我在 mysql 数据库中有一个表,其中包含特殊字符,如 Ø、Æ 等。当我用 php 运行搜索时,我找不到这些字段。但是当我在 phpmyadmin 中运行相同的 sql 时,我得到了结果。 这是表格结构:

CREATE TABLE IF NOT EXISTS `clientinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `adresse` varchar(160) NOT NULL,
  `gatenavn` varchar(20) NOT NULL,
  `husnr` varchar(20) NOT NULL,
  `bokstav` varchar(2) NOT NULL,
  `postnr` varchar(20) NOT NULL,
  `poststed` varchar(60) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=398 ;

这是一个示例查询:

SELECT * FROM clientinfo WHERE gatenavn = 'EKRAVEIEN' AND husnr = '1' AND postnr = '2010' AND poststed = 'STRØMMEN'

当我在 phpmyadmin 中运行这个查询时,我得到了结果;但是当我用 php 运行时不明白。我正在使用 mysqli。需要一些帮助。

最佳答案

在进行查询之前,告诉您的连接实例传送 UTF-8。在 MySqli 中,您可以调用函数 set_charset(),之后连接对象将传送 UTF-8。

调用此函数使您独立于数据库配置,如果需要,连接将转换返回的数据。当然如果不需要转换是最快的,所以调整配置也是一件好事。

// tells the mysqli connection to deliver UTF-8 encoded strings.
$db = new mysqli($dbHost, $dbUser, $dbPassword, $dbName);
$db->set_charset('utf8');

关于带有特殊字符的php mysql搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323577/

相关文章:

php和mysql,如何找出某人在数据库中的位置

php - 即使在调用验证函数后,使用 Bcrypt 密码验证登录访问也会出现问题

php - 将中值函数与排序和数组结合使用

MySQL 返回左表中的所有记录,不包括右表中匹配的记录

Mysql 2.9.1 错误与 ruby​​ 2.0

javascript - 如何将此数据库记录字符串格式化为此 JavaScript 对象数组?

php - joshcam php $db->有函数

PHP:将图像从文件夹上传到MySQL数据库

php - 如何将多个 sql 查询链接到 html 选择表单?

mysql - 一次执行多个 laravel alter table migration 查询?