Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
severlord
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
1

Объединение двух строк

08.04.2014, 15:00. Просмотров 760. Ответов 10
Метки нет (Все метки)

Всем привет!
Прошу прощения за мою тупость, но вопрос такой:
Необходимо отправить вот такой sql-запрос к БД:
SQL
1
UPDATE users SET logged_on = 1 WHERE login = 'Anna'
Вместо Анна может быть совсем другое значение, в зависимости от переменной tmplgn

Есть ли возможность как в ПХП указать что-то типа - UPDATE users SET logged_on = 1 WHERE login = $tmplgn или как то еще?

Или пробовал сделать одну строку для отправки:
C
1
2
3
char *sql_query;
strcpy(sql_query,"UPDATE users SET logged_on = 1 WHERE login = ");  
strcat(sql_query,tmplgn);
Пишет ошибка сегментирования....
Также пробовал задать сразу размер char sql_query[100]; - но тогда, оно и понятно, выводит непонятные символы из пространства памяти после введенных символов.
Не могу победить... Просьба помочь разобраться.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 15:00
Ответы с готовыми решениями:

Объединение двух строк в одну, причем вторая присоединяется к первой, начиная с n-го элемента первой
Объединение двух строк в одну, причем вторая присоединяется к первой, начиная с n-го элемента...

Определить объединение двух полей. Первое поле – массив из двух байт, второе – слово
Помогите написать программу( лучше с комментариями чтобы разобраться) Определить объединение из...

Объединение двух массивов
Здравствуйте, нужна помощь с программой на Си. "Даны два массива х и y, элементы каждого из...

Объединение двух множеств
Помогите! Нужно сделать объединение двух множеств. Вот код, но я не пойму откуда ноль #include...

Построить объединение двух последовательностей
Даны натуральное число n, целые числа a1,..., a25, b1,..., bn. Среди a1,..., a25 нет повторяющихся...

10
korvin_
2403 / 1880 / 341
Регистрация: 28.04.2012
Сообщений: 6,476
08.04.2014, 15:12 2
Цитата Сообщение от severlord Посмотреть сообщение
Или пробовал сделать одну строку для отправки:
Нет, так делать не стоит. А насчет параметров, всё зависит от SQL-библиотеки, которую ты используешь, но все более-менее адекватные должны уметь параметризованные запросы.
0
severlord
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 15:14  [ТС] 3
korvin_, gcc -g -o sql sql.c -lmysqlclient - вот так компилирую, в Linux. Не подскажешь как в ней запросы?
0
korvin_
2403 / 1880 / 341
Регистрация: 28.04.2012
Сообщений: 6,476
08.04.2014, 16:02 4
Я понятия не имею, что это за библиотека. Читай мануалы.
0
08.04.2014, 16:02
severlord
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 16:12  [ТС] 5
korvin_, лан, спс и на этом

вот так кстати проканало:
C
1
2
3
char *sql_query;
sql_query = malloc(sizeof(char) * 100);
sprintf(sql_query, "UPDATE users SET logged_on = 1 WHERE login = '%s'",tmplgn);
0
korvin_
2403 / 1880 / 341
Регистрация: 28.04.2012
Сообщений: 6,476
08.04.2014, 16:33 6
Цитата Сообщение от severlord Посмотреть сообщение
вот так кстати проканало:
C
1
sprintf(sql_query, "UPDATE users SET logged_on = 1 WHERE login = '%s'", "'; DROP TABLE users; SELECT '");
0
severlord
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 16:34  [ТС] 7
Прикол? Или что?
0
korvin_
2403 / 1880 / 341
Регистрация: 28.04.2012
Сообщений: 6,476
08.04.2014, 17:31 8
http://en.wikipedia.org/wiki/SQL_injection
0
Catstail
Модератор
24380 / 12323 / 2235
Регистрация: 12.02.2012
Сообщений: 20,015
08.04.2014, 20:00 9
Цитата Сообщение от severlord Посмотреть сообщение
Есть ли возможность как в ПХП указать что-то типа - UPDATE users SET logged_on = 1 WHERE login = $tmplgn или как то еще?
1) здесь раздел C...
2) насколько мне известно, в php именно так и нужно писать:

PHP
1
2
3
   $tbl_name="..."
 
   $Sql="SELECT * FROM $tbl_name"
0
severlord
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 20:17  [ТС] 10
Catstail, так я и спрашиваю аналог такой записи для Си...
0
Catstail
Модератор
24380 / 12323 / 2235
Регистрация: 12.02.2012
Сообщений: 20,015
08.04.2014, 20:36 11
В С, конечно, такой конструкции нет... Нужно программировать. Но, если нужно добавить в хвост строки, то вполне подойдет strcat
1
08.04.2014, 20:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 20:36

Объединение и пересечение двух массивов
доброго времени суток, нужна помощь со следующим кодом. void BuildGroup(int** group, int* count)...

Объединение двух упорядоченных массивов
Даны массив A из N целых элементов массив B из M целых элементов. Оба массива упорядочены по...

Объединение двух связных списков в один
Прога должна считать данные, строки, из командной строки, так мы создадим связный список, а потом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru