Кто-нибудь видит что-то не так с этим? Mysql + PHP Ошибка - PullRequest
1 голос
/ 30 августа 2010

Я запускаю следующую строку:

mysql_query("INSERT INTO tags 
                SET tag = '".$onesearch."',  
                SET date = '".date('d-m-Y')."'") or die(mysql_error());

... и умирает, говоря это:

В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'SET date = '29 -08-2010' 'в строке 1

Я не могу понять, что не так.

Ответы [ 4 ]

7 голосов
/ 30 августа 2010

Удалить вторую SET из вашего запроса на вставку.должно быть:

mysql_query("INSERT INTO tags 
                SET tag = '".$onesearch."',  
                date = '".date('d-m-Y')."'") or die(mysql_error());
4 голосов
/ 30 августа 2010

Неверный синтаксис, вы должны использовать только один SET:

mysql_query("INSERT INTO tags 
            SET tag = '".$onesearch."',  
            date = '".date('d-m-Y')."'") or die(mysql_error());

И это допустимый синтаксис INSERT, только к вашему сведению (в ответ на один из других ответов).

3 голосов
/ 30 августа 2010

Вы можете вывести запрос, который фактически выполняется? Возможно, тег содержит одиночную кавычку, которая выходит за пределы закрывающей кавычки и вызывает проблемы ... Вот почему вы хотите использовать:

mysql_query("INSERT INTO tags 
                SET tag = '". mysql_real_escape_string($onesearch) ."',  
                    date = '".date('d-m-Y')."'") or die(mysql_error());

Что вы пытаетесь сделать здесь?
Вы начинаете с синтаксиса INSERT, но после ссылки на таблицу преобразуетесь в синтаксис UPDATE.

INSERT

mysql_query("INSERT INTO tags 
               (tag, date) 
             VALUES 
               ('".$onesearch."', '".date('d-m-Y')."')") or die(mysql_error());

UPDATE

mysql_query("UPDATE tags 
                SET tag = '".$onesearch."',  
                    date = '".date('d-m-Y')."'") or die(mysql_error());

... но вы получите записи в таблице с этими двумя значениями. Вы бы хотели WHERE пункт об этом ...

2 голосов
/ 30 августа 2010

Я думаю, что на ваш вопрос уже ответили другие. но вы должны позаботиться об этой переменной $ onesearch. если он не очищен должным образом, цитата в нем также может нарушить ваш код. если вы этого еще не сделали, вам следует рассмотреть возможность использования mysql_real_escape_string() для защиты от ошибок и внедрения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...