Показать сообщение отдельно
  #1 (permalink)  
Старый 15.07.2011, 20:18
Интересующийся
Отправить личное сообщение для Vuzy Посмотреть профиль Найти все сообщения от Vuzy
 
Регистрация: 01.07.2011
Сообщений: 19

как писать правильные SQL запросы?
Понимаю что совсем детский вопрос но я в отчаянии уже второй денб ломаю голову не могу понять в чем дело.

Пишу простейший SQL запрос в БД
<?
require_once('bd.php');
$id=1234;
$name='Блаблабла';
$ownerid=836183;
$opentill=time();
$money=1000;
$ttid=1205;
$sell='3';
$buy='4';
$count=124;
$thingname='Медь';
$flags='';
$lup=time();
$sql="INSERT INTO haddan_shop VALUES id='".$id."', name='".$name."', ownerid='".$ownerid."', opentill='".$opentill."', money='".$money."', ttid='".$ttid."', sell='".$sell."', buy='".$buy."', colich='".$count."', thingname='".$thingname."', flags='".$flags."', openshop='1', lastupdatetime='".$lup."'";
mysql_query($sql) or die (mysql_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 'id='1234', name='Блаблабла', ownerid='836183', opentill='1310744763', money='100' at line 1

Структура БД
Код:
CREATE TABLE IF NOT EXISTS `haddan_shop` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text NOT NULL,
  `ownerid` int(11) NOT NULL,
  `opentill` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `money` int(11) NOT NULL,
  `ttid` int(11) NOT NULL,
  `sell` varchar(10) NOT NULL,
  `buy` varchar(10) NOT NULL,
  `colich` int(11) NOT NULL,
  `thingname` varchar(50) NOT NULL,
  `flags` varchar(15) NOT NULL,
  `openshop` int(11) NOT NULL,
  `lastupdatetime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
если написать тот же самый запрос в PhpMyAdmin то он выполняется как часы а из скрипта выполнятся не хочет. Другие скрипты на выборку или обновления работают значит какой то косяк в данных.
Ответить с цитированием