Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 4

Перехожу с PHP на C++. Нужна помощь с MySQL и вообще базами

23.01.2011, 00:19. Показов 1464. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ. Если у кого есть исходник с примером соединения и вывода строк из БД MySQL киньте мне на spog@bk.ru если не сложно. Заранее благодарен.

Еще вопрос: прочитал документацию по установке базы данных.... вроде все правельно сделал. Одно но - при копировании нуджных фйлов база данных уже была задействована скриптами php. Возможна ли работа скриптов и PHP и C++ с однйо и тойже БД?

И послений: в инструкции написано 'подключить' *.lib файл к С++. Как это правельн осделать? Лично я просто скопировал его в папку LIB (в главной директории с C++). Если не сложно дайте совет по установке или напишите как правельно устанвоить БД.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2011, 00:19
Ответы с готовыми решениями:

Нужна помощь с рапределёнными базами
Есть центральная и 3 распределённых базы, пару недель назад с одной из распределённых баз перестали приходить налоговые в центральную, при...

SELECT с MySQL+php работают не очёнь.Точнее не работает вообще
Думаю,здесь сидят нормальные люди. if ($res = mysql_query("SELECT * FROM users WHERE 'username' = '{$_POST}';")) $result =...

php info нужна помощь новичку
Установил apache php mySQL файл phpinfo.php из папки htdocs при вводе адреса 127.0.0.1/phpinfo.php страница с параметрами настройки...

4
0 / 0 / 8
Регистрация: 07.12.2010
Сообщений: 46
23.01.2011, 10:06
Привет.
Вот кусочек кода для соединения с MySQL найденный в одной
старой программе. С MySQL уже давно не работаю, поэтому всех тонкостей уже не помню.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//--------------------------------------------------------------------
#include <windows.h>
 
#include <stdio.h>
#include <mysql.h>
//--------------------------------------------------------------------
typedef struct
{
   int shnp;
   char nnp[13];
} SSH;
//--------------------------------------------------------------------
#pragma argsused
 
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
               LPSTR lpCmdLine, int nCmdShow)
{
   MYSQL mysql;
   MYSQL_RES *res;
   MYSQL_ROW row;
 
   char host[61], user[17], db[13], password[10];
   char qstr[32 * 1024];
   int max_ssh;
   SSH *ssh;
 
   host = '192.168.34.21';
   db = 'asu';
   user = 'user';
   password = '********';
   //Соединение с сервером
   if (!(mysql_connect(&mysql, host, user, password)))
   {
      MessageBox(NULL, 'Невозможно связаться с сервером',
                 'Ошибка соединения', MB_OK);
      return GetLastError();
   }
   //Выбор DB
   if (mysql_select_db(&mysql, db))
   {
      MessageBox(NULL, 'Невозможно открыть базу даных',
                 'Ошибка открытия базы данных', MB_OK);
      return GetLastError();
   }
   strcpy(qstr, 'SELECT shnp, nnp FROM ssh '
                'WHERE BINARY typeprod IN ('А', 'К', 'к', 'п')');
   mysql_query(&mysql, qstr);
   //Результаты запроса
   if ((res = mysql_store_result(&mysql)) == NULL)
   {
      mysql_close(&mysql);
      return GetLastError();
   }
   max_ssh = mysql_num_rows(res);
   if (max_ssh == 0)
   {
      MessageBox(NULL, 'Справочник пуст',
                 'Ошибка получения данных', MB_OK);
      mysql_free_result(res);
      mysql_close(&mysql);
      return GetLastError();
   }
   ssh = malloc(sizeof(SSH) * max_ssh);
 
   for (i = 0; i < max_ssh; i++)
   {
      row = mysql_fetch_row(res);
      ssh[i].shnp = strtol(row[0], NULL, 10);
      strcpy(ssh[i].nnp, row[1]);
   }
   mysql_free_result(res);
 
   // ... и т.п.
 
   mysql_close(&mysql);
   free(ssh);
 
   return 0;
}
//-------------------------------------------------------------------
Удачи
0
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 4
23.01.2011, 13:18  [ТС]
В общем извеняюсь за чайничество, код записал - при компиляции нескольок ошибок вылезло, такого рода:
C++
1
2
3
4
5
6
7
8
9
10
host = 'localhost';  // Lvalue required
db = 'earn';        // Lvalue required
user = 'root';     // Lvalue required
password = '';    // Lvalue required
 
max_ssh = mysql_num_rows(res); // Conversion may lose signinficant digits
 
ssh = malloc(sizeof(SSH) * max_ssh); // Cannot convert 'void *' to 'SSH *'
 
for (i = 0; i < max_ssh; i++) // Udefined symbol 'i'
В чем проблема? Неверная установка БД?
0
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
23.01.2011, 15:21
У меня MySQL 4.0.21 на Win-XP.
система находится на C:MySQL. Так вот там папочка есть:
C:MySQLexamplesibmysqltest с тестовым примером на VC++.
(К Borland C прилепить libMySQL.lib мне не удалось, на VC++ все ОК.)
'Подключить' *.lib файл к С++ можно так: скоприовать libMySQL.lib
в папку с Вашим проектом и щелкнув правой кнопкой мышки по названию
проекта в окне лева (закладка FileView) выбрать пункт 'Add Files to Project...' (Типы файлов 'Library Files (.lib)') и выбрав тот самый
libMySQL.lib.

Может предыдущий пример тоже работает, но для соединения с MySQL
в примере используется код подобный следующему:
C++
1
2
3
4
5
if((myData = mysql_init((MYSQL*) 0)) &&
mysql_real_connect(myData, szHostName, szUserName, szUserPswd, szDataBase, iPort, szUnixSocket, iClientFlag))
{
//успешное соединение!
}
На счет ошибок: переменные на C надо обязательно сначало объявлять.
Например так:
C++
1
2
3
4
5
int i;
CHAR host[HOSTNAME_LENGTH + 1] = LOCAL_HOST;
CHAR db[64] = 'earn';
CHAR user[USERNAME_LENGTH + 1] = 'root';
CHAR password[64] = '';
следующие ошибки обходятся так:
C++
1
2
max_ssh = (int)mysql_num_rows(res);
ssh = (SHH)malloc(sizeof(SSH) * max_ssh);
Удачного кодинга!
0
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 4
24.01.2011, 19:12  [ТС]
Спасибо, ошибки понял. Но не решил главную проблему - подключиться к БД. Появилось 2 вопроса:

1. Есть ли в C++ (или C++ Builder) уже установленные полностью БД?
2. Где можно достать ХОРОШИЙ учебник по C++ и MySQL в C++??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2011, 19:12
Помогаю со студенческими работами здесь

перехожу с mysql на mysqli и столкнулся с проблемой
подскажите как тут mysql_field_name правильно изменить на mysqli, если просто заменяю mysql_field_name на mysqli_field_name, то получаю ...

Сравнение двух дат в PHP.Нужна помощь
Помогите!Как сравнить две даты &lt;input type=text name=paystartdate value='&lt;?=Ukrdate($r-&gt;paystartdate)?&gt;' size=10&gt; &lt;input...

Очень нужна помощь: перевод из python в php
сидела-сидела, ковыряла-ковыряла, ничего не получилось(( помогите, пожалуйста, сделать то же самое, но на php... моей благодарности не...

Нужна помощь в установке Apache 2 и Компилятора php
извените если не по теме не нашел куда написать. Вообщем стал ставить апач и компилятор по инструкции...

Перехожу с php на С++
Доброе время суток форумчане. Помогите подобрать таловую книгу по программированию на C++ в контексте создания сайтов. Я неплохо знаю php,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru