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

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

08.04.2014, 15:00. Показов 1006. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 15:00
Ответы с готовыми решениями:

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

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

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

Объединение двух символьных строк
Написать программу объединения двух символьных строк с использованием команды MOVSB. Необходимо...

10
Эксперт Java
3319 / 2405 / 432
Регистрация: 28.04.2012
Сообщений: 7,965
08.04.2014, 15:12 2
Цитата Сообщение от severlord Посмотреть сообщение
Или пробовал сделать одну строку для отправки:
Нет, так делать не стоит. А насчет параметров, всё зависит от SQL-библиотеки, которую ты используешь, но все более-менее адекватные должны уметь параметризованные запросы.
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 15:14  [ТС] 3
korvin_, gcc -g -o sql sql.c -lmysqlclient - вот так компилирую, в Linux. Не подскажешь как в ней запросы?
0
Эксперт Java
3319 / 2405 / 432
Регистрация: 28.04.2012
Сообщений: 7,965
08.04.2014, 16:02 4
Я понятия не имею, что это за библиотека. Читай мануалы.
0
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
Эксперт Java
3319 / 2405 / 432
Регистрация: 28.04.2012
Сообщений: 7,965
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
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 16:34  [ТС] 7
Прикол? Или что?
0
Эксперт Java
3319 / 2405 / 432
Регистрация: 28.04.2012
Сообщений: 7,965
08.04.2014, 17:31 8
http://en.wikipedia.org/wiki/SQL_injection
0
Модератор
Эксперт Python
28975 / 15769 / 3133
Регистрация: 12.02.2012
Сообщений: 25,912
Записей в блоге: 4
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
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 11
08.04.2014, 20:17  [ТС] 10
Catstail, так я и спрашиваю аналог такой записи для Си...
0
Модератор
Эксперт Python
28975 / 15769 / 3133
Регистрация: 12.02.2012
Сообщений: 25,912
Записей в блоге: 4
08.04.2014, 20:36 11
В С, конечно, такой конструкции нет... Нужно программировать. Но, если нужно добавить в хвост строки, то вполне подойдет strcat
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2014, 20:36

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выполнить объединение двух строк с помощью перегрузки оператора (*)
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; class...

Получить третью строку, как объединение двух строк следующим способом: если S1= “123” и S2= “abc”, то S3=“1a2b3c”
Даны две символьные строки S1 и S2. Получить третью строку, как объединение двух строк следующим...

Если сумма двух первых строк матрицы А меньше суммы элементов двух последних её строк
Если сумма двух первых строк матрицы А меньше суммы элементов двух последних её строк. Изменить...

Из двух строк сделать одну, в которой поочередно будут символы двух строк
Из двух строк сделать одну, в котором поочередно будут символы двух строк.


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

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

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