#1 2011.01.22 19:32

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Помогите разобратся с mysql

Вот проблемка такая.
База выделуется конкретно.
На бесплатном хосте все работает на платном нифига

Код:

1
lt;? $sql = mysql_query('SELECT * FROM dir WHERE key=`dir`;'); echo mysql_num_rows($sql); echo mysql_error(); mysql_close();

Почему нет ответа.
А также код

Код:

1
lt;?$q=mysql_query("INSERT INTO apm (id, fio, log, pass, level, tranzit) VALUES ('{$id}','{$fio}','{$log}','{$pass}','{$level}','{$tranzite}');");

Не работает,
Надо указывать

Код:

1
lt;?$q=mysql_query("INSERT INTO apm VALUES ('{$id}','{$fio}','{$log}','{$pass}','{$level}','{$tranzite}');");

В чем может быть проблема?
Да и еще одно на соседнем скрипре точно такие работают
Что я не правильно делаю?

Неактивен

#2 2011.01.22 19:40

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите разобратся с mysql

1) SELECT * FROM dir WHERE key = "dir";
2) скорее всего ошибка в запросе (некорректно отфильтрованы переменные)

Неактивен

#3 2011.01.22 20:41

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Помогите разобратся с mysql

Щас попробую
Добавлено спустя   9 минут  19 секунд:
Ничего не пойму и класы по mysql тоже не берут
Вот что получаю

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 'key = "dir"' at line 1

Код:

1
lt;? $sql = mysql_query('SELECT * FROM dir WHERE key = "dir";'); echo mysql_num_rows($sql).mysql_error(); mysql_close();//При этом?>SELECT * FROM dir;возращает 2 Но почему ведь все вроде верноСтруктураCREATE TABLE IF NOT EXISTS `dir` ( `id` int(11) unsigned NOT NULL auto_increment, `name` varchar(20) collate utf8_unicode_ci NOT NULL, `key` varchar(20) collate utf8_unicode_ci NOT NULL, `sub` varchar(20) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;И содержимоеINSERT INTO `dir` (`id`, `name`, `key`, `sub`) VALUES(1, 'dir', 'dir', ''),(2, '111', '111', '');

Отредактировано TLENS (2011.01.22 20:57)

Неактивен

#4 2011.01.22 20:57

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите разобратся с mysql

попробуй key обернуть апострофами. т.е. `key`

Неактивен

#5 2011.01.22 21:29

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Помогите разобратся с mysql

О сработало. Что за синтаксис такой?

Код:

1
SELECT * FROM dir WHERE `key`="dir";

И как вот это дальше писать. Пипец.

Отредактировано TLENS (2011.01.22 21:32)

Неактивен

#6 2011.01.22 21:56

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 805
Карма: 11
Профиль Веб-сайт

Re: Помогите разобратся с mysql

ну вообще желатель брать в апострафы названия таблиц и названия полей!  изначально так научился, и делаю это постоянно!


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#7 2011.01.22 22:20

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите разобратся с mysql

TLENS, вообще это основы синтаксиса. и возмущаться тут надо собственному незнанию, а не синтаксису SQL

Неактивен

#8 2011.01.22 22:37

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Помогите разобратся с mysql

О заработало и

Код:

1
lt;?$q=mysql_query('INSERT INTO `dir` (`name`, `key`, `sub`, `time`) VALUES ("'.$_POST['name'].'","'.$_POST['key'].'","'.$_POST['sub'].'","'.SITETIME.'");');

Спасибо

Отредактировано TLENS (2011.01.22 22:40)

Неактивен

#9 2011.01.22 23:42

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 805
Карма: 11
Профиль Веб-сайт

Re: Помогите разобратся с mysql

кстати интересно что лучше использовать
INSERT INTO `table` (...) VALUES(...)
или
INSERT INTO `table` SET `pole` = 'value'...


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#10 2011.01.23 01:06

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите разобратся с mysql

SET по моему только начиная с mysql5 чтоли.. а на счет производительности уверен что разницы нет.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.012 s