Задавайте вопросы, мы ответим
Вы не зашли.
#1064 - 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 ''ak'='1', 'name'='2', 'rang'='3', 'fights'='4', 'forces'='5', 'wellness'='6', 'l' at line 1
Эта ошибк возникает, при запросе:
INSERT INTO `er_army` SET 'ak'='1', 'name'='2', 'rang'='3', 'fights'='4', 'forces'='5', 'wellness'='6', 'levels'='7', 'xp'='8', 'strength'='9', 'country'='10', 'region'='11'
Сначала из кода вставлял, думал код неверне.. потом уже стал проверять напрямую из phpMyAdmin - тоже самое - таже ошибка.
Изначально был запрос с VALUE и перечислением... сейчас в поисках решения запрос видоизменился на использование SET.
Не могу понять, че ему синтаксис не нравится
ПРИМЕЧАНИЕ МОДЕРАТОРА
Всем новичкам, прежде чем писать свой вопрос об ошибке 1064, ознакомьтесь с кратким списком рекомендаций по решению проблемы.
1. Неправильные кавычки. Одинарные кавычки обозначают строковую константу. Применение их к именам колонок или таблиц приведет к ошибке синтаксиса (как в примере выше). Имена колонок и таблиц нужно заключать в обратные кавычки (там где бкува ё на клавиатуре).
2. TEXT, DATE, DAY, ORDER и многие другие - ключевые слова. Использование их в качестве имен колонок или таблиц без обратных кавычек приведет к ошибке.
Для верности можно все имена колонок и таблиц заключать в обратные кавычки.
3. Обратите внимание на структуру сообщения об ошибке:
... to use near ' здесь кусок запроса с того места где начинается ошибка ' at line 1
Это означает, что если кусок цитируемого запроса начинается:
а) со слов SELECT, INSERT, UPDATE, DELETE, скорее всего у вас не закрыт предыдущий запрос ( нет ; после него).
б) со слова TYPE, ваша версия уже не поддерживает это ключевое слово и вместо него нужно писать ENGINE
в) если цитируемый кусок запроса на первый взгляд не содержит ошибок, то нужно смотреть на весь запрос целиком. Вероятно ранее в запросе что-нибудь пропущено из-за чего цитируемый кусок оказывается не на своем месте и воспринимается как ошибка.
Обычно движок сайта кроме сообщения об ошибке печатает и запрос в котором она произошла. Если этого нет, то вам нужно лезть в скрипт, который формирует страницу и править его, чтобы отображался полностью запрос.
Если в запросе что-нибудь пропущено, например, две подряд запятые (между которыми должно стоять значение) или конструкция вида (`имя колонки`=, ) значит ваш скрипт написан криво и нужно искать место в скрипте где формируется запрос и почему там пустые переменные.
UPD:
Полный список рекомендаций смотрите в статье 1064 you have an error in your sql syntax Статья написана по итогам многочисленных обсуждений на форуме и регулярно обновляется, поэтому освещает аспекты возникновения mysql error 1064.
Неактивен
set используется для обновления, а не для вставки. Придётся вернуть на values.
Отредактированно Lem0nti (29.01.2009 18:23:58)
Неактивен
#1064 - 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 ''er_army' (ak,name,rang,fights,forces,wellness,levels,xp,strength,country,region' at line 1
Всеравно error
INSERT INTO 'er_army' (ak,name,rang,fights,forces,wellness,levels,xp,strength,country,region) VALUES ('1','2','3','4','5','6','7','8','9','10','11')
Неактивен
Ну а тут кавычки поставили вокруг имени таблицы не правильные. Бэктики должны быть (там, где ё).
P.S. Кстати, в первом случае вокруг имен полей тоже бэктики надо было ставить.
Неактивен
Спасибо, запрос заработал
INSERT INTO er_army (ak,name,rang,fights,forces,wellness,levels,xp,strength,country,region) VALUES ('1','2','3','4','5','6','7','8','9','10','11')
Неактивен
ребята помогите из за просом старый запрос был такой
b := rs.FormatQuery('INSERT INTO '+DBRec.table1+' (BanCreate, HDDSN, Name, IPAddr, BanTime, Reason, SteamId, UUID) '+
'VALUES (%s,%s,%s,%s,%d,%s,%s,%s)', [SqlDT2Str(p^.DateTime), p^.HddSN, p^.Name, p^.IPAddr, p^.min, p^.Reason, p^.SteamId, p^.UUID]);
я решил сменить этот запрос на другую базу сделал так
b := rs.FormatQuery('INSERT INTO '+DBRec.table1+' (player_id,player_ip,player_nick,admin_ip,admin_id,admin_nick,ban_type,ban_reason,ban_created,ban_length,server_name,server_ip, SteamId, UUID) '+
'VALUES (%s,%s,%s,'''','''',''MyAC'',''S'',%s,%d,%d,''MyAC Anticheat'','''')', [p^.HddSN, p^.IPAddr, p^.Name, p^.Reason, SqlDT2Str(p^.DateTime), p^.min, p^.SteamId, p^.UUID]);
мне пишет такое
"#1064: 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 '' at line 1"
Неактивен
А почему Вы вдруг решили править формат, а не аргументы, которые
тут нужно править по смыслу?
Подозреваю, что формат сам добавляет кавычки, и MySQL обижается,
что Вы экранируете непойми что
Неактивен
потому что я новичек в этом деле и не знаю как делать
всех с праздником
Отредактированно viktor6 (23.02.2010 20:33:03)
Неактивен
#1064 - 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 = `002` LIMIT 0, 30' at line 1
пишет такую ошибку при запросе
SELECT * FROM `table` WHERE key = `002`
причем зачем-то добавляет после моего запроса LIMIT 0 , 30. Объясните в чем ошибка и че за лимит такой.( ковычки где key ставил и где ё и где э) кодировку пробывал менять поля key(оно в формате varchar(25)) на utf-8 изначально было 1251_general_ci
Неактивен
key - ключевое слово. Его нужно брать в обратные кавычки
SELECT * FROM `table` WHERE `key` = '002'
Неактивен
)) слона то и не заметил огромное спасибо очень быстро среагировали.
Неактивен
помогите побороть
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 ')' at line 1 1064
Запрос
$add_to_base = 'INSERT INTO '.$userlog.' (login,date,zayavka,blank,us1,us2,us3,us4,us5,us6,us7,summa,komment,otkaz) VALUES ('.$userlog.','.$today.','.$zayavka.','.$blank.','.$_POST['us1'].','.$_POST['us2'].','.$_POST['us3'].','.$_POST['us4'].','.$_POST['us5'].','.$_POST['us6'].','.$_POST['us7'].','.$summa.','.$komment.','.$otkaz.')';
причем методом исключения, я выяснил, что если удалить из запроса первое поле, то все в базу добавляется, а если убрать все кроме первого поля, то пишет что типа unknown column in field list , что за фигня не пойму???
переименовывал колонки, переменные и тд не помогает
Неактивен
Вы выведите запрос целиком, после подстановки переменных, тогда станет
понятно, что Вы реально отправляете, и в чем проблема.
Неактивен
$dots = '...';
$sql = ' PREPARE statement FROM
"SELECT DISTINCT p.product_id, p.name,
IF(LENGTH(p.description) <= ?,
p.description,
CONCAT(LEFT(p.description, ?),
'.$dots.')) AS description,
p.price, p.discounted_price, p.thumbnail
FROM product p
INNER JOIN product_category pc
ON p.product_id = pc.product_id
INNER JOIN category c
ON pc.category_id = c.category_id
WHERE (p.display = 2 OR p.display = 3)
AND c.department_id = ?
ORDER BY p.display DESC
LIMIT ?, ?";
SET @p1 = :short_product_description_length;
SET @p2 = :short_product_description_length;
SET @p3 = :department_id;
SET @p4 = :start_item;
SET @p5 = :products_per_page;
EXECUTE statement USING @p1, @p2, @p3, @p4, @p5;
Ошибка :
SQLSTATE[42000]: Syntax error or access violation: 1064 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 '..)) AS description,
p.price, p.discounted_price, p.thumbna' at line 5
Подскажите что не так
Неактивен
вот так это выглядит
$userlog = $_POST['hiden_login'];//скрытое поле формы, получает из другой формы(select)
$today = date("y-m-d");
$zayavka = $_POST['zayavka'];//int формы
$blank = $_POST['blank'];//int формы
$us1 = ($_POST['us1']*1425);
$us2 = ($_POST['us2']*750);
$us3 = ($_POST['us3']*1500);
$us4 = ($_POST['us4']*500);
$us5 = ($_POST['us5']*1500);
$us6 = ($_POST['us6']*1000);
$us7 = ($_POST['us7']*750);
$summa = ($us1+$us2+$us3+$us4+$us5+$us6+$us7);
$komment = $_POST['komment'];//varchar
$otkaz = $_POST['otkaz'];//chekbox 1 или 0
$connect = mysql_connect("localhost","root") or die ("can't connect:<br>\n" . mysql_error());
echo "<br>\n connected successfully <br>\n";
mysql_select_db ('mydb',$connect) or die ("cant select data base <br>\n" . mysql_error());
echo "<br>\n data base selected <br>\n";
//добавление данных в бд
if($_POST['add_button']){ //submit
echo "<br>\n Ваш сумма: ", $summa; //проверка получена ли переменная
echo "<br>\n Ваш логин: ", $userlog; //проверка получена ли переменная
$add_to_base = 'INSERT INTO '.$userlog.' (id,log,today,zayavka,blank,us1,us2,us3,us4,us5,us6,us7,summa,komment,otkaz) VALUES (,'.$userlog.','.$today.','.$zayavka.','.$blank.','.$_POST['us1'].','.$_POST['us2'].','.$_POST['us3'].','.$_POST['us4'].','.$_POST['us5'].','.$_POST['us6'].','.$_POST['us7'].','.$summa.','.$komment.','.$otkaz.')';
mysql_query($add_to_base) or die ("<br>\n cant insert in data base <br>\n" . mysql_error());
cant insert in data base
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 'brulevae,10-03-19,12345678,123456,1,0,0,0,0,0,0,1425,,)' at line 1
Отредактированно r.e.d. (19.03.2010 10:02:54)
Неактивен
VALUES (,'.$userlog.','
Запятая после открывающей скобки лишняя.
Неактивен
если ее убрать, пишет
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 ')' at line 1 1064
я ее поставил чтоб было видно остальные переменные
сейчас перепробовав все подряд, добился того, что на синтаксис он больше не ругается, но теперь пишет
Unknown column 'brulevae' in 'field list' (это первое значение в запросе, если его удалить, то пишет следующее значение)
ваще не понимаю что за байда,
версия MySQL 5.0.45
Неактивен
Понял. вы кавычки неправильно ставите. У вас в php
'INSERT INTO ... VALUES ('.$userlog.',
подставляются переменные, объединяется строка и получается запрос
INSERT INTO ... VALUES (brulevae,
кавычек нет, следовательно brulevae имя столбца.
Неактивен
ээээ а какие нужно, я уже все вариации перепробовал, но всеравно спасибо за наводку
Неактивен
"INSERT INTO ... VALUES ('".$userlog."',
Неактивен
$add_to_base_otkaz = 'INSERT INTO '.$userlog.' (`log`,`zayavka`,`komment`)
VALUES ('.$userlog.','.$zayavka.','.$komment.')';
cant insert in data base
Unknown column 'brulevae' in 'field list'
$add_to_base_otkaz = 'INSERT INTO '.$userlog.' (`zayavka`,`komment`)
VALUES ('.$zayavka.','.$komment.')';
а так работает
ни чо не понимаю, походу проблема в первой переменной, но не пойму в чем она....
может потому, что нельзя оду и туже переменную использовать как имя таблицы и как значение?
всем спасибо разобрался, понял, что в двойные кавычки нужно заключать все что будит записываться в поля типа varchar, а в остальных не нужно, долго до меня это доходило )))
Отредактированно r.e.d. (19.03.2010 13:13:01)
Неактивен
Там еще bee вклинивался (а мог бы создать отдельную тему, да )
bee написал:
$dots = '...';
<cut>
CONCAT(LEFT(p.description, ?),
'.$dots.')) AS description,
Экранировать кавычки не забывайте.
Неактивен
Ну помогите пожалуйста, сделал сайт на Joomla 1,5. На локалке экспортировал базу в phpMyAdmin 2.6.1 - файл пересохранил в кодировке utf8. Кидаю базу на хостинг 1gb.ru (там phpMyAdmin 2.6.2) выдает такую вот ошибку:
ERROR 1064 (42000) at line 1: 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 'яЛП
CREATE TABLE `bak_banner` (
`bid` int(11) NOT NULL auto_increment,
`cid`' at line 1
Замучился, что делать то, я вообще в базах ноль. Подскажите новичку как исправить? Могу прислать базу (300 кб).
P.S. Попробывал еще двух сайтов базы кинуть созданные на локалке та же ошибка. Что за синтакс на локалке phpMyAdmin 2.6.1 делает не так при экспорте??? Что его хостинг не понимает...
Отредактированно Tigerfox (02.04.2010 14:52:04)
Неактивен
Попробуйте не пересохранять файлы, возможно, это наведенная ошибка от
пересохранятора. Ну или можете удалить строчку «яЛП» из дампа и попро-
бовать залить его еще раз.
Неактивен
Доброго времени суток!
у меня вот тоже трабла)))
кароч, при дампе базы выдает такую ошибку
Error occured at:2010-04-19 21:53:19
Line no.:3531
Error Code: 1064 - 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 ('72,0,,1.01,1,0,72,0,383,4010460307),(857042,0,0,6,1.01,115,216.44,0,0,0,0,6,1.01') at line 1
если поможете решить, спасибо за ранее)
Отредактированно swow73 (19.04.2010 23:24:07)
Неактивен