Предположите, America's Best Inn Adams' Inn America's Best Inn хранится в создании таблицы db
Я должен проверить America's Best Inn Adams' Inn America's Best Inn $EstablishmentName переменной переменной
$stmt = $sql->prepare("SELECT ID FROM `establishment` WHERE Name=? LIMIT 1"); $stmt->bind_param("s",$EstablishmentName); $stmt->execute(); $stmt->store_result(); print $stmt->num_rows;
Проблема в том, что я не могу их найти.
ВЫХОД 0
Примечание: вложенное значение $EstablishmentName mb_convert_string($EstablishmentName,'HTML-ENTITIES') с mb_convert_string($EstablishmentName,'HTML-ENTITIES') иначе вы получите ошибку. Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
UPDATE: я использую set_charset('utf8') для клиентской стороны; таблица charset – utf8, а сортировка – utf8_general_ci . Текст кодируется как исходный текст. Я использую следующий DB Manager: SQLyog и PHPMyAdmin.
ОБНОВЛЕНИЕ # 2: Я прикрепил скриншот к вам, чтобы посмотреть, что я говорю правильную кодировку.

Я использую $sql->set_charset('utf-8');
массив
(
[BrandName] => Лучшая цена Америки
[try1] => 1
)
массив
(
[BrandName] => Adams 'Inn
[try1] => 0
)
массив
(
[BrandName] => Ambassador Inn and Suites
[try1] => 1
)
массив
(
[BrandName] => Amberley Suite Hotel
[try1] => 1
)
массив
(
[BrandName] => Лучшая цена Америки
[try1] => 0
)
ОБНОВЛЕНИЕ # 3 Хорошо, извините. Имя столбца было latin1_swedish_ci .
Я обновил столбец Name :
ALTER TABLE establishment MODIFY NAME VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci;
Теперь это должно работать без mb_convert_string() .
Просто положите
mysqli_set_charset($db_connection, 'utf8');
после подключения к базе данных.
пример
$con=mysqli_connect("localhost", "root", "xxxxx","database"); mysqli_set_charset($con, 'utf8');
Единственное, что я мог сказать, что вижу много путаниц здесь
Предполагая, что вы можете получить стоимость Adams' Inn America's Best Inn основанную на id, позвольте мне предложить вам ее получить, а затем сравнить вручную. var_dump (). Если вы все еще не видите разницу – urlencode (), то сначала
Это решило проблему:
iconv('windows-1250', 'utf-8', $EstablishmentName);