#1 2011.01.22 19:32

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

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

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

Код:

1
2
3
4
5
<?
  $sql = mysql_query('SELECT * FROM dir WHERE key=`dir`;');
  echo mysql_num_rows($sql);
 echo mysql_error();
  mysql_close();

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

Код:

1
2
3
4
5
6
7
8
9
10
<?
$q=mysql_query("
INSERT INTO apm (id, fio, log, pass, level, tranzit) VALUES (
'{$id}',
'{$fio}',
'{$log}',
'{$pass}',
'{$level}',
'{$tranzite}'
);");

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

Код:

1
2
3
4
5
6
7
8
9
10
<?
$q=mysql_query("
INSERT INTO apm VALUES (
'{$id}',
'{$fio}',
'{$log}',
'{$pass}',
'{$level}',
'{$tranzite}'
);");

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

Неактивен

#2 2011.01.22 19:40

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

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
    
  $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
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

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
Сообщений: 857
Карма: 11
Профиль Веб-сайт

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

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


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

Неактивен

#7 2011.01.22 22:20

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

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

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

Неактивен

#8 2011.01.22 22:37

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

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

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

Код:

1
2
3
4
5
6
7
8
<?
$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
Сообщений: 857
Карма: 11
Профиль Веб-сайт

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

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


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

Неактивен

#10 2011.01.23 01:06

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

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

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

Неактивен

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

forum.wapinet.ru

PunBB Mod v0.6.1
0.017 s