SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.01.2017 12:56:54

karim
Участник
Зарегистрирован: 23.01.2017
Сообщений: 3

синтаксическая ошибка

функция
function createTable($name, $query)
{
    queryMysql("CREATE TABLE IF NOT EXIST $name($query)");//создаем таблицу если еще не созданы
    echo "Table '$name' created or already exists.<br>"; //выводим сообщение о его создании
}
запрос
createTable('members',
              'user VARCHAR(16),
              pass VARCHAR(16),
              INDEX(user(6))');
ошибка
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 'EXIST members(user VARCHAR(16), pass VARCHAR(16), ' at line 1

Неактивен

 

#2 23.01.2017 13:01:49

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: синтаксическая ошибка

EXIST замените на EXISTS

Неактивен

 

#3 23.01.2017 13:32:54

karim
Участник
Зарегистрирован: 23.01.2017
Сообщений: 3

Re: синтаксическая ошибка

createTable('messages',
              'id INT USIGNED AUTO_INCREMENT PRIMARY KEY,
              auth VARCHAR(16),
              recip VARCHAR(16),
              pm CHAR(1),
              time INT UNSIGNED,
              message VARCHAR(4096),
              INDEX(auth(6)),
              INDEX(recip(6))');

это ПОСЛЕДНЯЯ ошибка, проверял
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 'USIGNED AUTO_INCREMENT PRIMARY KEY, auth VARCHAR(16), ' at line 1

Отредактированно karim (23.01.2017 13:37:49)

Неактивен

 

#4 23.01.2017 13:40:12

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: синтаксическая ошибка

посмотрите статью MySQL error 1064

и в одинарных кавычках цитирует часть запроса с того места где начинается ошибка. Это очень полезное свойство, так как позволяет сразу определить место, которое сервер счел ошибочным.

отсюда следует, что ошибка в USIGNED
если посмотрите https://dev.mysql.com/doc/refman/5.7/en … table.html , то увидите, что такого ключевого слова нет, есть UNSIGNED

p.s. какой-то стремный скрипт, учитывая характер ошибок

Неактивен

 

#5 23.01.2017 13:55:28

karim
Участник
Зарегистрирован: 23.01.2017
Сообщений: 3

Re: синтаксическая ошибка

нет скрипты норм, ляпы мои, первое знакомство с mysql, как говориться на ошибках учатся

Неактивен

 

#6 23.01.2017 13:59:38

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: синтаксическая ошибка

Используйте программы для работы с БД (создание/изменения/удаления таблиц, скриптов). Она избавит Вас от подобных ошибок. Не нужно писать руками.

Неактивен

 

#7 23.01.2017 21:59:07

buldog52
Участник
Зарегистрирован: 11.12.2016
Сообщений: 9

Re: синтаксическая ошибка

klow написал:

Используйте программы для работы с БД (создание/изменения/удаления таблиц, скриптов). Она избавит Вас от подобных ошибок. Не нужно писать руками.

не подскажете парочку?

Неактивен

 

#8 23.01.2017 22:34:26

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: синтаксическая ошибка

пожалуйста
1. MySQL Workbench
2. HeidiSQL
3. dbForge for MySQL
4. phpMyAdmin
Наверно еще есть.

Неактивен

 

#9 23.01.2017 22:39:19

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: синтаксическая ошибка

Я лично использую dbForge for MySQL, но в нем есть такие баги, которые могут положит БД. Будьте аккуратны.

Неактивен

 

#10 23.01.2017 22:49:12

buldog52
Участник
Зарегистрирован: 11.12.2016
Сообщений: 9

Re: синтаксическая ошибка

Пока что писал запросы в notepad++ (у него есть синтаксис sql)

Неактивен

 

#11 23.01.2017 23:11:42

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: синтаксическая ошибка

notepad++ это конечно хорошо, но он хорош на скорую руку исправить скрипт. Но если Вы хотите реально работать, не отлавливая подобные ошибки  - используйте что-то другое. Вы увидите насколько работа будет быстрее, когда автоматически подставляются имена команд, объектов, полей, связей. Есть подсветка ошибок еще до отправки в MySql.

Отредактированно klow (23.01.2017 23:12:08)

Неактивен

 

#12 24.01.2017 08:21:58

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: синтаксическая ошибка

klow написал:

Я лично использую dbForge for MySQL, но в нем есть такие баги, которые могут положит БД. Будьте аккуратны.

klow, а расскажите, какие баги там БД могут положить?

В эту
http://sqlinfo.ru/forum/viewtopic.php?id=2499
ветку отпишите )), вдруг вернется достойный участник форума.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#13 24.01.2017 10:02:23

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: синтаксическая ошибка

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson