MySQL Column count doesn't match value count at row 1

интернет компьютеры php MySQL програмирование

Имеется запрос через php:
$query = "INSERT INTO $userstable VALUES ('$title', '$authdown', '$catid', '$locurl', '$textshort', '$image_thumb', '$image', '$image_align', '$image_alt', '$hits', '$trans', '$lastdown', '$rating', '$totalrating', '$act', '$acc', '$listid', '$comments', '$tags', '$maildown', '$sitedown', '$authdown', '$relisdown', '$mirrorsurl', '$mirrorsname', '$textnotice', '$textmore', '$keywords', '$descript', '$extsize', '$exturl', '$cpu', '$unpublic', '$stpublic', '$public', '$downid')";
(36 таблиц)
И структура таблицы:
http://i023.radikal.ru/1003/ae/ac0c23cd5e17.png

Почему не работает?

Примечание:
Спасибо за ответы!

Примечание:
А downid считается?
Ответы:
укажи перечень полей, которые ты заполняешь. по картинке запрос вообще лажовый
На картинке видно, что первым полем у тебя идёт downid (int) -- а в запросе первым идёт $title -- очень вероятно что текстовый:). Другими словами, MySQL пытается вставлять переданные в запросе значения в поля в той последовательности, в которой ты можешь наблюдать на скриншоте(по порядку, сверху вниз).
Тут два варианта -- либо расставить в запросе значения в правильной последовательности, либо дописать к запросу порядок полей (как-то так: INSERT INTO $userstable (title, authdown, catid, ... )VALUES ('$title', '$authdown', '$catid', ...)
Почему-то у меня стопроцентная уверенность, что инъекция тут гуляет :)
Японский Городовой
Какая инъекция? Вы определили значения переменных по их названию? Как можно не зная полного содержания скрипта и его предназначения вообще, говорить об инъекции?
peter911
Вы видимо просто посчитали, что имена переменных в php эквивалентны полям в MySQL. Но это не так. Что у Вас не верно, уже разъяснили.
И ещё $downid' заполнять не желательно, это ведь поле с AUTO_INCREMENT. Просто поставьте вместо этой переменной кавычки ''. И всё будет в порядке.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.