Ввод данных в БД

Ilja_OrdY

Новичок
Ввод данных в БД

Добрый вечер.
Вот вопрос
есть табличка
в ней 20 полей
заполнение происходит поэтапно.
можно вместо
insert into table (fil1, fil2 ......) values (val1, val2);
использовать
insert into table fil1=val1, fil4=val4, fil16=val16;
одним словом чтобы не перечислять все поля, да и к тому же таблица растёт и каждый раз 10 файлов листать добавлять новые поля .... бррр
наверняка можно что то придумать помогите.
спасибо.
 

Ilja_OrdY

Новичок
insert into table fil1=val1, fil4=val4, fil16=val16;
неработает.????
а при этом варианте insert into table (fil1, fil2 ......) values (val1, val2); при добавлении нового поля 21 надо дописывать fil21 ... value21
а мне надо вставить 6 полей из 20.
но они не по порядку.
 

talgat

Новичок
А что мешает сделать так
insert into table (fil1, fil2, fil16, fil21) values (val1, val2, val16, val21);
Либо я не совсем понял что же хочет Автор.
 

Ilja_OrdY

Новичок
Автор оригинала: talgat
А что мешает сделать так
insert into table (fil1, fil2, fil16, fil21) values (val1, val2, val16, val21);
Либо я не совсем понял что же хочет Автор.
нет всё верно но так не проходит....
ругается.... ну раз так должно то буду ковырять.
у меня пока получается если я укажу все поля, а если выборочно то нет!!!
по этому я и тут..

-~{}~ 25.01.08 03:01:

SQL-запрос:

INSERT INTO pc_users( 'id', 'dopusk' )
VALUES (
'1', '1'
)

Ответ MySQL: Документация
#1064 - 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 ''id', 'dopusk') values ('1', '1')' at line 1

вот я указал только 2 поля, из 20. но не добавляется!
 

Stalone

Новичок
кавычки убери с названия полей - pc_users(id, dopusk)
и номера тоже, без кавычек пишутся - values(1,1)
 

Bitterman

Новичок
Заключение значений (даже числовых) в кавычки является одним из способов защиты от возникновений ошибок при выполнении sql-выражения (не слишком коряво объяснил?). А вот имена полей действительно надо писать либо без кавычек, либо так - `id` .
 

Фанат

oncle terrible
Команда форума
Ilja_OrdY
Вопрос твой вызывает только недоумение.
В описанном тобой формате ПОЛЯ, как раз, перечислять НУЖНО - ты же пишешь fil1=val1, fil4=val4, fil16=val16;
а в формате, который тебе не нравится, имена полей можно не перечислять - просто не писать (fil1, fil2 ......)

Дальше. что значит - таблица растет и 10 файлов листать? что ты листаешь? и какая разница, что таблица растет? пусть растет. или она у тебя растет в ширину? Это значит, что ты неправильно сделал свою таблицу. она должна расти в высоту с добавлением файлов
 

Фанат

oncle terrible
Команда форума
Да не в кавычках дело. а в кривой базе данных.
ты это понял?
 

Ilja_OrdY

Новичок
ВСЕМ СПАСИБо можно закрывать!

-~{}~ 25.01.08 13:13:

Автор оригинала: *****
Да не в кавычках дело. а в кривой базе данных.
ты это понял?
почему??
ну вот регистрация юзера.
мне надо чтобы при регистрации заполнилось, только 4 поля.
остальные поля из других мест до записываются.

а в ширь растёт из за того что, проект только на стадии разработки.
 

Ярослав

Новичок
блин а почему не использовать конструкцию типа
PHP:
INSERT INTO TABLE SET `field1`="value1", `field2`="value2"
Как по мне то это намного удобней конструкции
PHP:
INSERT INTO TABLE (`field1`, `field2`) VALUES ("value1", "value2")
 

Ilja_OrdY

Новичок
Автор оригинала: Ярослав
блин а почему не использовать конструкцию типа
PHP:
INSERT INTO TABLE SET `field1`="value1", `field2`="value2"
пробовал. но не проходило почему то....
скорее всего по причине
PHP:
INSERT INTO TABLE SET field1="value1", field2="value2"
[/QUOTE]
Кавычек... '
 

Фанат

oncle terrible
Команда форума
при синтаксисе INSERT INTO TABLE (`field1`, `field2`) VALUES ("value1", "value2") можно точно так же писать только те поля которые нужны. а не все 20.

между кавычками ' и " нет никакой разныцы. а тебе показывают ` - совсем другую.
Подробнее читай здесь: PHP FAQ: \"Кавычки \". Cоставление запросов, слеши, SQL Injection
 

Ilja_OrdY

Новичок
Автор оригинала: *****
при синтаксисе INSERT INTO TABLE (`field1`, `field2`) VALUES ("value1", "value2") можно точно так же писать только те поля которые нужны. а не все 20.

между кавычками ' и " нет никакой разныцы. а тебе показывают ` - совсем другую.
Подробнее читай здесь: PHP FAQ: \"Кавычки \". Cоставление запросов, слеши, SQL Injection
спасибо за статью.
познавательная. можно сразу по ней вопрос.
все входящие данные я обрабатываю htmlspecialchars() после чего только пихаю в таблицы. есть ли необходимость после этого использовать mysql_real_escape_string()
спасибо
 

Фанат

oncle terrible
Команда форума
во-первых, подумай сам. В статье для этого информации достаточно.
во-вторых, лично я бы не стал все входящие обрабатывать htmlspecialchars
 

Beavis

Banned
htmlspecialchars правильно обрабатывать данные перед выводом... зачем перед занесением в базу то эту ф-цию использовать? могут проблемы возникнуть, например меняется длина строки... да и вообще это получаются уже не те данные которые ввел пользователь
 

Ilja_OrdY

Новичок
Автор оригинала: Beavis
htmlspecialchars правильно обрабатывать данные перед выводом... зачем перед занесением в базу то эту ф-цию использовать? могут проблемы возникнуть, например меняется длина строки... да и вообще это получаются уже не те данные которые ввел пользователь
уже увидел. у меня вот ещё проблемка. если при выводе использовать. то üõäö не отображаются. или после обработки preg_replace использовать для подмены юнкода?
 
Сверху