SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.05.2011 13:51:42

Alexio_kor
Участник
Зарегистрирован: 26.05.2011
Сообщений: 2

Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Возникла ошибка - 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 ''ignore') VALUES ('28', '2', '123', 'нет', '7', 'A1', 'E7', 'F10', 'W1', '', 'D5' at line 1

Добавлял переменные по одному и на последнем дает ошибку.

$result = mysql_query ("INSERT INTO craftart_cost (id_art, id_user, cost, prim, treb_level, air, earth, fire, water, nature, defence, craft_prim, ignore) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim', '$ignore')"); - так дает ошибку

$result = mysql_query ("INSERT INTO craftart_cost (id_art, id_user, cost, prim, treb_level, air, earth, fire, water, nature, defence, craft_prim) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim')"); - а так все нормально

Неактивен

 

#2 26.05.2011 13:54:31

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

IGNORE ключевое слово, его нельзя без обратных кавычек

$result = mysql_query ("INSERT INTO craftart_cost (`id_art`, `id_user`, `cost`, `prim`, `treb_level`, `air`, `earth`, `fire`, `water`, `nature`, `defence`, `craft_prim`, `ignore`) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim', '$ignore')");

Неактивен

 

#3 26.05.2011 13:57:08

Alexio_kor
Участник
Зарегистрирован: 26.05.2011
Сообщений: 2

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Большое спасибо

rgbeast написал:

IGNORE ключевое слово, его нельзя без обратных кавычек

$result = mysql_query ("INSERT INTO craftart_cost (`id_art`, `id_user`, `cost`, `prim`, `treb_level`, `air`, `earth`, `fire`, `water`, `nature`, `defence`, `craft_prim`, `ignore`) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim', '$ignore')");

Неактивен

 

#4 27.05.2011 05:26:27

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Подскажите пожалуста где тут ошибка!!

--
-- Table structure for table `prefix_clans`
--

CREATE TABLE IF NOT EXISTS `prefix_clans` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `owner_id` int(10) unsigned NOT NULL,
  `name` varchar(255) NOT NULL,
  `name_url` varchar(255) NOT NULL,
  `people` varchar(255) NOT NULL,
  `people_count` int(10) unsigned NOT NULL,
  `description` varchar(255) NOT NULL,
  `reg_date` date NOT NULL,
  `avator` varchar(255) NOT NULL,
  `url_home_page` varchar(255) NOT NULL,
  `status` tinyint(1) NOT NULL,
  `bannedtime` datetime NOT NULL,
  `rating` decimal(10,3) NOT NULL,
  `lesions` int(10) unsigned DEFAULT '0',
  `victories` int(10) unsigned DEFAULT '0',
  `all_games` int(10) unsigned zerofill DEFAULT '0000000000',
  `effectiveness` decimal(10,3) NOT NULL DEFAULT '0.000',
  `win_clan_name` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=2 ;

--
-- Dumping data for table `prefix_clans`
--

INSERT INTO `prefix_clans` (`id`, `owner_id`, `name`, `name_url`, `people`, `people_count`, `description`, `reg_date`, `avator`, `url_home_page`, `status`, `bannedtime`, `rating`, `lesions`, `victories`, `all_games`, `effectiveness`, `win_clan_name`) VALUES
(1, 1, 'test', 'test', 'admin', 1, '', '2010-10-02', 'default.jpg', 'http://netyyy', 0, '0000-00-00 00:00:00', 0.000, 0, 0, 0000000000, 0.000, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `prefix_clans_bans`
--

CREATE TABLE IF NOT EXISTS `prefix_clans_bans` (
  `clan_id` int(10) unsigned NOT NULL,
  `ban_active` tinyint(1) NOT NULL,
  `rating` int(10) unsigned NOT NULL,
  `status` int(10) unsigned NOT NULL,
  `bannedtime` int(10) unsigned NOT NULL,
  `ban_date` datetime NOT NULL,
  `ban_expired` datetime DEFAULT NULL,
  `ban_unlim` int(10) unsigned NOT NULL,
  `moder_id` int(10) unsigned NOT NULL,
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ban_comment` varchar(200) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1 ;

--
-- Dumping data for table `prefix_clans_bans`
--


-- --------------------------------------------------------

--
-- Table structure for table `prefix_clans_moderators`
--

CREATE TABLE IF NOT EXISTS `prefix_clans_moderators` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `moderator_id` int(10) unsigned NOT NULL,
  `moderator_name` varchar(255) NOT NULL,
  `modered_count` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `prefix_clans_moderators`
--

Неактивен

 

#5 27.05.2011 08:18:15

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Вы бы хоть саму ошибку написали, чтоли smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#6 27.05.2011 18:54:00

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Вот ошибка!!
SQL Error: 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 at /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php line 682
Array (  => 1064 [message] => 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 [query] => UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = 'asd' [context] => /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php line 682 )

Неактивен

 

#7 27.05.2011 21:01:48

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

А при чём здесь структуры таблиц?
Ведь ясно написано: ошибка синтаксиса возле "05, victories = victories + 1, effectiveness = 100 / all_games * vic".
Сам запрос-то где? Ошибка в нём в указанном месте.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#8 28.05.2011 00:12:47

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Запрос к БД я написал в 1 сообщенее!! просто когда я использую 1-ну из функция етого запроса - выбивает ошибку, которую я написал ниже! И прошу помощи ее решения!!! Я сначала думал что проблема состоит в Utf, а когда все переписал понял что ето проблема в БД! Возможно версия MSql не подходит! Впрочем, помогите кто знает как ето решить!!!

Неактивен

 

#9 28.05.2011 14:05:37

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

В ошибочном запросе присутствует следующий фрагмент: "05, victories = victories + 1, effectiveness = 100 / all_games * vic". Теперь найдите этот фрагмент в первом сообщении... его просто нет, Вы привели структуру таблиц.

В сообщении об ошибке ведь всё написано: и участок запроса с ошибкой, и скрипт, который вызвал ошибку, и даже номер строки, на которой выполнялся данный запрос.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#10 28.05.2011 21:10:35

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Neval написал:

В сообщении об ошибке ведь всё написано: и участок запроса с ошибкой, и скрипт, который вызвал ошибку, и даже номер строки, на которой выполнялся данный запрос.

И именно опираясь на номер строки, реально найти ошибку.
Проще всего, думаю, вывести на экран сам запрос, после  Добавьте инструкцию print ЗАПРОС; в нужном месте (сразу после того, как запрос полностью сформировался) и приведите вывод этой инструкции сюда. Или, если не получается, приложите сюда в аттаче файл /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 29.05.2011 16:32:54

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

`victories` int(10) unsigned DEFAULT '0' вот запрос и з таблицы где ето происходит! но когда я его исправляю - он вобще не работает!!!!

Неактивен

 

#12 29.05.2011 23:11:14

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

вот строка в которой выбивает ошибку! я его подчиркнул!

  {
      return true;
        }
    return null;
  }
  public function WarSetWin($id_war, $name_clan_win, $name_clan_lost, $back = false)
  {
    $sql = 'UPDATE '.DB_TABLE_CLANS.'
    SET
      all_games = all_games + 1,
      rating = rating + '.RATING_UP_WHEN_VICTORY.',
      victories = victories + 1,
      effectiveness = 100 / all_games * victories
    WHERE
      name_url = ?';
    if(!$this->oDb->query($sql, $name_clan_win))
    {
      return false;
        }
    $sql = 'UPDATE '.DB_TABLE_CLANS.'   
    SET
      all_games = all_games + 1,
      rating = rating - '.RATING_DOWN_WHEN_LESION.',
      lesions = lesions + 1,
      effectiveness = 100 / all_games * victories
    WHERE
      name_url = ?';
    if(!$this->oDb->query($sql, $name_clan_lost))
    {
      return false;
        }
    $sql = 'UPDATE '.DB_TABLE_CLANS_WARS.'
    SET
      win_clan_name = ?
    WHERE
      id = ?'.($back ? NULL : ' AND win_clan_name IS NULL');
    if($this->oDb->query($sql, $name_clan_win, $id_war))
    {
      return true;
        }
    return false;
  }
  public function WarResetWin($id_war, $name_clan_win, $name_clan_lost)
  {
    $sql = 'UPDATE '.DB_TABLE_CLANS.'
    SET
      all_games = all_games - 1,
     
      rating = rating - '.RATING_UP_WHEN_VICTORY.',
      victories = victories - 1,
      effectiveness = 100 / all_games * victories
    WHERE
      name_url = ?';
    if(!$this->oDb->query($sql, $name_clan_win))
    {
      return false;
        }
    $sql = 'UPDATE '.DB_TABLE_CLANS.'
    SET
      all_games = all_games - 1,
     
      rating = rating + '.RATING_DOWN_WHEN_LESION.',
      lesions = lesions - 1,
      effectiveness = 100 / all_games * victories
    WHERE
      name_url = ?';
    if(!$this->oDb->query($sql, $name_clan_lost))
    {
      return false;
        }
    return true;
  }

Отредактированно SlavaFlash (29.05.2011 23:15:03)

Неактивен

 

#13 29.05.2011 23:13:30

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Хорошо, теперь добавьте после

$sql = 'UPDATE '.DB_TABLE_CLANS.'
    SET
      all_games = all_games + 1,
      rating = rating + '.RATING_UP_WHEN_VICTORY.',
      victories = victories + 1,
      effectiveness = 100 / all_games * victories
    WHERE
      name_url = ?';

строчку

print $sql."<br />";

и пришлите ее вывод сюда.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#14 29.05.2011 23:26:47

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

а где етот вывод нада смотреть! я немножко не понял..... я добавил и сделал тот запрос от каторого у меня ошибка, но пишет тоже самое что я написал во 2 -м сообщение!!

Неактивен

 

#15 29.05.2011 23:31:51

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Вот ее вывод!!

UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = ?
SQL Error: 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 at /home/p7410/www//classes/modules/clans/mapper/Clans.mapper.class.php line 683
Array (  => 1064 [message] => 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 [query] => UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = 'tset1' [context] => /home/p7410/www//classes/modules/clans/mapper/Clans.mapper.class.php line 683 )

Неактивен

 

#16 29.05.2011 23:32:44

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = ?

Этот запрос некорректно составлен - не должно быть инструкции "name_url = ?".

Вместо вопросительного знака должно быть подставлено строковое значение.
Думаю, что-то вроде " name_url='http://mail.ru' ".

Отредактированно deadka (29.05.2011 23:34:57)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#17 29.05.2011 23:46:20

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

после етого ошибку начало вот злесь выбивать

$sql = 'UPDATE '.DB_TABLE_CLANS_WARS.'

Неактивен

 

#18 29.05.2011 23:48:30

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Приведенная Вами конструкция вообще не похожа нa sql-запрос. Кто и какую ошибку выдаёт?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#19 29.05.2011 23:53:57

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Вот где!!!

CREATE TABLE IF NOT EXISTS `prefix_clans` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `owner_id` int(10) unsigned NOT NULL,
  `name` varchar(255) NOT NULL,
  `name_url` varchar(255) NOT NULL,
  `people` varchar(255) NOT NULL,
  `people_count` int(10) unsigned NOT NULL,
  `description` varchar(255) NOT NULL,
  `reg_date` date NOT NULL,
  `avator` varchar(255) NOT NULL,
  `url_home_page` varchar(255) NOT NULL,
  `status` tinyint(1) NOT NULL,
  `bannedtime` datetime NOT NULL,
  `rating` decimal(10,3) NOT NULL,
  `lesions` int(10) unsigned DEFAULT '0',
  `victories` int(10) unsigned DEFAULT '0',
  `all_games` int(10) unsigned zerofill DEFAULT '0000000000',
  `effectiveness` decimal(10,3) NOT NULL DEFAULT '0.000',
  `win_clan_name` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=2 ;

Неактивен

 

#20 30.05.2011 13:08:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

Брр, сколько обсуждения. «0,05» — это не число. Это два числа, разделенных
запятой. А нужно писать «0.05» для дробного числа.

Ну и проблема не в победах, а в рейтинге.

Неактивен

 

#21 30.05.2011 22:54:05

SlavaFlash
Участник
Зарегистрирован: 27.05.2011
Сообщений: 10

Re: Возникла ошибка - You have an error in your SQL syntax; check the manual that corresponds

СПс!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson