Не работают простые запросы типа SELECT

103
10 августа 2019, 02:50

Храню в MySQL словарь: 1 таблица, 2 столбца (id и ru_word).
Параметры второго столбца: тип Varchar(100), сравнение urf8_general_ci.
Словарь добавлен в БД из файла следующим образом:

$conn = mysqli_connect("localhost", "root", "", "db");
$handle = fopen("dictionary.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $word = mysqli_real_escape_string($conn, $buffer);
        $query = "INSERT INTO word_list VALUES (NULL, '$word')";
        $result = mysqli_query($conn, $query) or die("Ошибка " . mysqli_error($conn)); 
    }
    if (!feof($handle)) {
        echo "Ошибка: fgets() неожиданно потерпел неудачу\n";
    }
    fclose($handle);
}

В phpMyAdmin делаю запрос SELECT * FROM word_list WHERE ru_word = 'холодильник' и запрос пуст (данное слово в словаре есть). Если же искать по id, то найдет.
Не пойму что не так, вроде все элементарно, а не робит.

Answer 1

Убедитесь, что поле содержит только тот текст, который вы ищите (без лишних пробелов, переносов строк и прочего). Попробуйте запрос с ru_word like '%холодильник%' вместо ru_word = 'холодильник'. Проверьте кодировку и сопоставление. Для MySQL тексты в таблице это просто последовательность бит, но создавая таблицу вы указываете (или используются значения по умолчанию), как эту последовательность интерпретировать в том числе в случае сопоставления.

READ ALSO
Имена текстур assimp C++

Имена текстур assimp C++

Разбираюсь с структурой assimp Разработал класс на основе примера для рисования модели ни никак не могу понять как получить адрес файла с текстурой

136
C++ const char to char

C++ const char to char

имею структуру

120
imgui OpenGL 3.3 C++ glfw Графичиский интерфейс

imgui OpenGL 3.3 C++ glfw Графичиский интерфейс

Пытаюсь создать приложение с графическим интерфейсом копирую код из стандартного примера визуалки 2017 в визуалку 2010 выдает кучу ошибок линковки...

101