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
|
#include <iostream>
#include <mysql/mysql.h>
using namespace std;
MYSQL *link;
MYSQL_RES *res;
MYSQL_ROW row;
int main(){
/* ターミナルのコードページをUTF-8に設定
日本語OSでのDev-C++のデフォルトの符号化方式はShift JISで変更できないため、
これによりUTF-8のデータベースが正しく表示されるようになります。
また、データベース作成時に符号化方式をShift JISにすることで、
以下の2行を削除することができます。 */
system("chcp 65001");
system("cls");
/* 接続の作成 */
link = mysql_init(NULL);
if(!mysql_real_connect(link, "localhost", "root", "YOUR_PASSWORD"/* パスワード */, "school"/* データベースの名前 */, 0, NULL, 0))
fprintf(stderr, "%s\n", mysql_error(link));
/* テーブル一覧の出力 */
if(mysql_query(link, "SHOW TABLES;"))
fprintf(stderr, "%s\n", mysql_error(link));
res = mysql_use_result(link);
cout<<"MySQL Tables in school database:"<<endl;
while((row = mysql_fetch_row(res)) != NULL)
cout<<row[0]<<endl;
/* SELECT文の実行と出力 */
char sql[] = "SELECT sno, sname FROM student WHERE sno IN (SELECT sno FROM sc GROUP BY sno HAVING COUNT(*) >= 2);";
mysql_query(link, sql);
res = mysql_store_result(link);
for(int i = 0; i < mysql_num_rows(res); i++){
row = mysql_fetch_row(res);
cout<<row[0]<<'\t'<<row[1]<<endl;
}
/* メモリの解放と接続の終了 */
mysql_free_result(res);
mysql_close(link);
return 0;
}
|