2009-07-16 5 views
-2
function saveFile($catId,$docuTitle,$linkTitle) { 

$result = mysql_query("INSERT INTO categories (cd_title, cd_link) 
         VALUES ('$docuTitle','$linkTitle') WHERE c_name = '$catID'");  

      return 'yes'; 

     } 

Я хочу вставить ссылки cd и cd ссылки на основе выбранного катер.Получение ошибки в этом запросе

+1

какая ошибка? Можем ли мы получить схему базы данных? Имеются ли в ваших параметрах функции какие-либо одиночные кавычки? –

+1

О, пожалуйста, скажите мне, что это тестовая вещь, и что на самом деле у вас нет исполняемого файла sql непосредственно с вашей веб-страницы с помощью этой функции mysql_query() – jlarson

+1

«WHERE» в инструкции insert без соединений не имеет никакого смысла , –

ответ

2

Редактировать: Скотт Сондерс прав, вы не можете иметь инструкцию WHERE в запросе INSERT.

Оригинальный ответ: Вы должны сообщить больше об ошибке, но у вас, вероятно, есть простая цитата (') для переменных $ documentTitle или $ linkTitle, что приводит к искаженному запросу.

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

Вы должны прочитать некоторые документы о PDO, это отличный инструмент, позволяющий избежать подобных ошибок в SQL-запросах, и это помогает много для эволютивности и ремонтопригодности.

+0

+1 для PDO [+1 я говорю!] –

2

Вы, вероятно, хотите:

INSERT INTO categories (cd_title, cd_link, c_name) VALUES ('$docuTitle','$linkTitle', '$catID') 

Если вы не обновляя существующие строки, а затем изменить 'INSERT INTO' в 'UPDATE'

+0

jea INSERT и WHERE в том же самом заявлении не имеет смысла – Flo

1

вы объединяете оператор INSERT и UPDATE заявление.

Вы должны выбрать правильный синтаксис:

INSERT INTO [TABLE] [COLUMNS] VALUES [VALUES] 

UPDATE [TABLE] SET [COLUMNS] = [VALUE] WHERE [where clause] 
Смежные вопросы