как писать правильные 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` ( |
Насколько мне известно INSERT имеет примерно такой синтаксис:
Код:
INSERT INTO `table` (`field1`, `field2`) VALUES ("value1", "value2") |
Поменял запрос на
$sql="INSERT INTO `haddan_shop` (`id`, `name`, `ownerid`, `opentill`, `money`, `ttid`, `sell`, `buy`, `colich`, `thingname`, `flags`, `lastupdatetime`) VALUES ('".$id."','".$name."','".$ownerid."','".$opentill."','".$money."','".$ttid."','".$sell."','".$buy."','".$colich."','".$thingname."''".$flags."','".$lup."')"; старая проблемма исчезла появилась новая теперь мне выдает ошибку: Column count doesn't match value count at row 1 Я так поняо что то не так с полями или количеством полей но все верно должно быть. я ж указал какие поля заполнять и в порядке значений не ошибся... ниче не понимаю. =( |
Цитата:
|
Значит я гдето допустил ошибку и немогу понять где... и ошибки теперь две хотя раньше была только одна.
|
без обид, но неужели так сложно прочитать сообщение об ошибке внимательно? там ясно сказано, в чем проблема.
но получается, что запостить кучу сообщений на форум проще, чем пересчитать количество аргументов для VALUES! это забавно и странно |
Добавил одно поле в запрос теперь везде 13 полей и 13 значений для полей но вернулась старая ошибка:
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 '`lastupdatetime`) VALUES ('1234','Блаблабла','836183','1310760556' ,'1000','1205'' at line 1 вот где ошибка? $sql="INSERT INTO haddan_shop (`id`, `name`, `ownerid`, `opentill`, `money`, `ttid`, `sell`, `buy`, `colich`, `thingname`, `flags`, `openshop` `lastupdatetime`) VALUES ('".$id."','".$name."','".$ownerid."','".$opentill."','".$money."','".$ttid."','".$sell."','".$buy."','".$colich."','".$thingname."''".$flags."', '1', '".$lup."')"; |
$sql="INSERT INTO haddan_shop (`id`, `name`, `ownerid`, `opentill`, `money`, `ttid`, `sell`, `buy`, `colich`, `thingname`, `flags`, `openshop` `lastupdatetime`) VALUES ('".$id."','".$name."','".$ownerid."','".$opentill."','".$money."','".$ttid."','".$sell."','".$buy."','".$colich."','".$thingname.*!*"''"*/!*.$flags."', '1', '".$lup."')";это что такое? sql - это тебе не php $sql = "INSERT INTO haddan_shop (`id`, `name`, `ownerid`, `opentill`, `money`, `ttid`, `sell`, `buy`, `colich`, `thingname`, `flags`, `openshop` `lastupdatetime`) VALUES ('$id', '$name', '$ownerid', '$opentill', '$money', '$ttid', '$sell', '$buy', '$colich', '*!*CONCAT($thingname, flags)*/!*', '1', '$lup')"; p.s. еще совет: вот такое Код:
'".$name."' Код:
'$name' |
там данные могут быть с пробелами и хочется избежать путаницы в БД впринципе уже разобрался оказалось что просто небыло запятой... вот тут
`openshop` `lastupdatetime` и все работает. Спс за внимание к проблемме |
Часовой пояс GMT +3, время: 12:40. |