Вы не зашли.
Главная » SQL » Помогите разобратся с mysql
#1. TLENS Off (14)
Moderator
2011.01.22 19:07
Вот проблемка такая.
База выделуется конкретно.
На бесплатном хосте все работает на платном нифига

Код:
lt;? $sql = mysql_query('SELECT * FROM dir WHERE key=`dir`;'); echo mysql_num_rows($sql); echo mysql_error(); mysql_close();
Почему нет ответа.
А также код
Код:
lt;?$q=mysql_query("INSERT INTO apm (id, fio, log, pass, level, tranzit) VALUES ('{$id}','{$fio}','{$log}','{$pass}','{$level}','{$tranzite}');");
Не работает,
Надо указывать
Код:
lt;?$q=mysql_query("INSERT INTO apm VALUES ('{$id}','{$fio}','{$log}','{$pass}','{$level}','{$tranzite}');");
В чем может быть проблема?
Да и еще одно на соседнем скрипре точно такие работают
Что я не правильно делаю?
#2. Gemorroj Off (107)
Administrator
2011.01.22 19:07
1) SELECT * FROM dir WHERE key = "dir";
2) скорее всего ошибка в запросе (некорректно отфильтрованы переменные)
#3. TLENS Off (14)
Moderator
2011.01.22 20:08
Щас попробую
Добавлено спустя   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
Код:
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:08)
#4. Gemorroj Off (107)
Administrator
2011.01.22 20:08
попробуй key обернуть апострофами. т.е. `key`
#5. TLENS Off (14)
Moderator
2011.01.22 21:09
О сработало. Что за синтаксис такой?
Код:
SELECT * FROM dir WHERE `key`="dir";
И как вот это дальше писать. Пипец.
Отредактировано TLENS (2011.01.22 21:09)
#6. Nu3oN Off (11)
Moderator
2011.01.22 21:09
ну вообще желатель брать в апострафы названия таблиц и названия полей!  изначально так научился, и делаю это постоянно!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#7. Gemorroj Off (107)
Administrator
2011.01.22 22:10
TLENS, вообще это основы синтаксиса. и возмущаться тут надо собственному незнанию, а не синтаксису SQL
#8. TLENS Off (14)
Moderator
2011.01.22 22:10
О заработало и
Код:
lt;?$q=mysql_query('INSERT INTO `dir` (`name`, `key`, `sub`, `time`) VALUES ("'.$_POST['name'].'","'.$_POST['key'].'","'.$_POST['sub'].'","'.SITETIME.'");');
Спасибо
Отредактировано TLENS (2011.01.22 22:10)
#9. Nu3oN Off (11)
Moderator
2011.01.22 23:11
кстати интересно что лучше использовать
INSERT INTO `table` (...) VALUES(...)
или
INSERT INTO `table` SET `pole` = 'value'...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#10. Gemorroj Off (107)
Administrator
2011.01.23 01:01
SET по моему только начиная с mysql5 чтоли.. а на счет производительности уверен что разницы нет.
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.019 s