2013-08-01 2 views
3

Видимо, я получаю синтаксическую ошибку, но я не вижу никаких проблем с моим кодом!синтаксическая ошибка, я ее не вижу: S

if rs.EOF then 
    'User doesn't exist, create the record 
    query = currentDate&",'" 
    query = query + password & "','" 
    query = query + "user', '" 
    query = query + email & "', '" 
    query = query + fname & "', '" 
    query = query + sname & "'" 

    handle = add_to_database("users","jdate,password,perms,email,fname,sname",query) 
    response.write handle 
else 
    response.write "Error: User already exists, please use a different email address" 
end if 

Вот функция add_to_database

function add_to_database(where,column,values)  
    'Create query 
    sql = "INSERT INTO " & where & " (" & column & ") VALUES (" & values & ")" 
    on error resume next 
    'Add images to database 
    conn.Execute sql,recaffected 

    if err<>0 then 
     add_to_database = err.description &":"&sql&"<br />" 
    end if 

    'Destroy connection 
    sql = "" 
end function 

Это ошибка, которая записывается на страницу

Syntax error in INSERT INTO statement.:INSERT INTO users (jdate,password,perms,email,fname,sname) VALUES (#2013/8/2#,'af453d19feb2520c8c0d30fb39ebd211','user', '[email protected]', 'Martyn', 'Ball') 
+0

Это первый раз, когда я видел символ хэша, используемый как разделитель значения даты. Мне любопытно. Что это значит? Какой механизм базы данных поддерживает его? – Zec

+0

@Zec: Синтаксис MS Access для дат. –

+0

Вам необходимо предоставить дополнительную информацию. Какой движок базы данных вы используете? Синтаксис, который вы используете для 'jdate' (' # 2013/08/2 # '), скорее всего, не будет принят ADO или OLEDB. Вы должны придерживаться стандартного формата 'YYYY-MM-DD' в SQL. –

ответ

5

Таблица users включает в себя поле с именем password. Но password - это reserved word, поэтому можно смутить механизм db, когда он найдет его в запросе. Переименуйте это поле, если это возможно. Если вы должны сохранить имя как есть, заключите его в квадратные скобки, чтобы сигнализировать об устройстве db, это имя объекта.

handle = add_to_database("users","jdate,[password],perms,email,fname,sname",query) 
+0

Я думаю (может быть ошибочно) Доступ использует обратные ссылки для зарезервированных слов –

+1

Либо обратные или квадратные скобки будут работать. Я использую скобки по привычке. – HansUp

+0

Удивительное спасибо! Это определило проблему –

Смежные вопросы