- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Постараюсь объяснить тупо, но подробно.
Стоит задача добавить скриптом в таблицу строку. Среди прочего есть поле Url.
Запрос INSERT выполняется успешно, все добавляется. В поле Url появляется необходимое двухзначное значение - 'JA'. В пхпмайадмине все видно.
При запросе SELECT ... WHERE Url='JA' возвращает пустую строку. Не видит в упор. Ни скриптом, ни в пхпмайадмин.
Если там же, в пхпмайадмин, руками отредактировать значение и поставить те же JA - начинает находить.
При добавлении скриптом из строки 'JA' на всякий случай удалены символы пробела и возврата каретки, которых там нет. Не помогает.
Понимаю, что моя глупость, но не понимаю, в чем она. Недоумеваеэ...
М.б. двойные кавычки?
вариант 1 - регистр символов
вариант 2 - локаль
решение 1 - перевести локаль в ***_general_ci
решение 2 - WHERE url like 'JA'
решение 3 - покажите дамп структуры таблицы
Понимаю, что моя глупость, но не понимаю, в чем она. Недоумеваеэ...
буква 'A' при insert-е и при выборке точно английская?
-- phpMyAdmin SQL Dump
-- version 3.5.5
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 20 2013 г., 09:58
-- Версия сервера: 5.1.68-cll
-- Версия PHP: 5.3.17
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- База данных: `med`
--
-- --------------------------------------------------------
--
-- Структура таблицы `cache`
--
CREATE TABLE IF NOT EXISTS `cache` (
`Id` int(4) unsigned NOT NULL AUTO_INCREMENT,
`Category` varchar(20) CHARACTER SET cp1251 DEFAULT NULL,
`Url` varchar(255) CHARACTER SET utf8_general_ci DEFAULT NULL,
`Title` varchar(255) CHARACTER SET cp1251 DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7980 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
В скрипте после запроса поставьте echo mysql_error();. Может есть ошибки в запросе, тогда отобразится сообщение.
дани мапов, ну я не настолько валенок. Про регистр и русские буквы аналогично.
А если
SELECT ... WHERE trim(Url)='JA'
?
:)
Заметил еще одну странность в поведении. Если в пхпмайадмин просто взять и нажать ссылку "Изменить", а затем сохранить изменения, не совершая самих изменений - все начинает работать.
Ну явно же проблема в скрытых символах или \n \t \r
trim почистите и всё будет ок.
LEOnidUKG, чистил