Другие языки программирования и технологии

Невероятная ситуация с базами и запросами SQL

У меня есть таблица pokypkadacha. Делаю к ней запрос $query = "SELECT * FROM pokypkadacha WHERE (id = '$id') and (def1 = '$oper') ";
выводит ошибку Table 'reelter.pokypadacha' doesn't exist. Почему то седаеться буква "k" заменяешь её например на "с" тесть запрос получается $query = "SELECT * FROM pokypCadacha WHERE (id = '$id') and (def1 = '$oper') "; выводит ошибку Table 'reelter.pokypcadacha' doesn't exist. тоесть другие буквы видет но почему не видеть букву "K"?
A.2.14. Ошибка Table 'xxx' doesn't exist

Получение ошибки Table 'xxx' doesn't exist или Can't find file: 'xxx' (errno: 2), означает, что в текущей базе данных не существует таблицы с именем xxx.

Обратите внимание: поскольку в MySQL для хранения баз данных и таблиц используются каталоги и файлы, то имена баз данных и каталогов являются зависимыми от регистра символов! (Под Windows имена баз данных и таблиц не зависят от регистра символов, но для всех ссылок на заданную таблицу в пределах запроса должен использоваться одинаковый регистр! )

Проверить, какие таблицы имеются в текущей базе данных, можно с помощью SHOW TABLES.
ОС
Олег Строкин
2 978
Лучший ответ
Единственная мысль - проверить кодировки
латиница-кирилица
и в запросах и в именах таблиц и в параметрах преобразований запросов
(хотя фиг его знает -тут я почти по нулям)

------------
"Проверил всё utf-8"
тогда я совсем пас. разве что проверить на промежуточные UTF-16. Хотя наверно это не в ту сторону.
------
Разве что случайно не в той кодировке символ затесался и приходится его ловить.
Марат Муканов
Марат Муканов
75 320
для начала напиши верно запрос свой $query = "SELECT * FROM pokypkadacha WHERE (id = '$id') and (def1 = '$oper') = $query => "SELECT * FROM pokypkadacha WHERE (id = '$id') - если база корректно спроектирована, то каждой записи соответствует свой уникальный идентификатор - id больше условий выбора писать нет смысла
reelter.pokypadacha - это так понимают показывает строку, в которой говорит, что схема под которой ты работаешь не содержит твою таблицу, аналогичное сообщение когда ты пытаешься букву изменить - выводит что не находит таблицу. одно из решений - измени запрос и прописывай корректную схему, на которой сидишь и где есть твоя таблица
//-------------------------------------------------------------
дело не в корректности, а в логике работы - если ты этого не понял.
когда ты делаешь запрос к БД, она у тебя на mysql, необходимо прописывать к какой БД ты цепляешься, например
select * from myTest.table1 where cod = 110111
аналогично и у тебя, посмотри, есть ли в твоей БД reelter таблица твоя.
самый просто й вариант - просто заселекть без условия из любой таблицы reelter
Попробуй заключить название таблицы в обратные одинарные кавычки - "`". SELECT * FROM `pokypkadacha`