За последние 24 часа нас посетили 16690 программистов и 1650 роботов. Сейчас ищут 2023 программиста ...

Неправильная кодировка символа "больше"

Тема в разделе "PHP и базы данных", создана пользователем artemiusgreat, 19 окт 2008.

  1. artemiusgreat

    artemiusgreat Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    3
    Симпатии:
    0
    -- Вобщем есть база:

    -- phpMyAdmin SQL Dump
    -- version 2.6.1
    -- http://www.phpmyadmin.net
    --
    -- Хост: localhost
    -- Время создания: Окт 17 2008 г., 20:13
    -- Версия сервера: 5.0.45
    -- Версия PHP: 5.2.4
    --
    -- БД: `demo`
    --

    -- Таблица в ней:

    DROP TABLE IF EXISTS `ru_page`;
    CREATE TABLE `ru_page` (
    `id` int(15) NOT NULL auto_increment,
    `name` char(100) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

    -- И неработающий запрос:

    SELECT * FROM ru_page WHERE `id`>1;

    -- с ошибкой 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';1' at line 1

    Проблема заключается в символе ">" - если его поменять на "=" - все работает. Пробовал менять кодировки БД, таблиц, запроса явно на UTF-8 (через iconv () и SET ... ) - одно и то же.
    В PhpMyAdmin запрос выполняется нормально, а в PHP mysql_query () - выдает вышеупомянутую ошибку. Хотелось бы узнать что такого может стоять в настройках PhpMyAdmin что он нормально интерпритирует этот символ - а ПХП не может?
    Если есть какие-то идеии пожалуйста напишите. Спасибо за любую информацию.
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    ну и где у тебя в
    написано
    ?

    Кстати, точка с запятой в mysql_query не нужна
     
  3. artemiusgreat

    artemiusgreat Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    3
    Симпатии:
    0
    Спасибо за быстрый ответ, НО:
    1. Изначально тотчки с запятой в запросе не было - она появилась уже после того как напало отчаяние (поэтому это не важно)
    2. В том то и дело что я хочу как раз на форуме узнать откуда вот это появилось
    Код (Text):
    1. ;1
    потому как Я ЭТОГО НЕ СТАВИЛ. В этом и заключался вопрос!

    Первоначально запрос выглядел вот так:
    [sql]SELECT * FROM ru_page WHERE `id`>1[/sql]
    Ничего лишнего, и тем не менее он работает в любом редакторе БД. и не работает в PHP mysql_query ().
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    меня терзают смутные сомнения

    прям так и написано в скрипте
    PHP:
    1. <? mysql_query('SELECT * FROM ru_page WHERE `id`>1')
    или первоначально запрос чем-то обрабатывается?
     
  5. artemiusgreat

    artemiusgreat Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    3
    Симпатии:
    0
    Ой :)
    Излишняя паранойя. Да, действительно, вы правы, там стоял:
    PHP:
    1. mysql_query (htmlspecialchars (addslashes ($VsQuery)), $VpLink)
    Он и подменял знак "больше" на спецсимвол "&gt;"
    Тема закрыта. Большое спасибо :)
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    ещё немного телепатию прокачать и можно приступать к завоеванию мира :)