-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsqlspider.cpp
91 lines (86 loc) · 2.16 KB
/
sqlspider.cpp
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
81
82
83
84
85
86
87
88
89
90
91
#include "sqlspider.h"
MySqlServer::MySqlServer()
{
const char *host="127.0.0.1";
const char *passwd="123456";
mysql=new MYSQL;
char buff[256]={0};
if(NULL==mysql_init(mysql))
{
cout<<"Init fail. "<<mysql_error(mysql)<<endl;
exit(-1);
}
if(!mysql_real_connect(mysql,host,DBUSER,passwd,NULL,DBPORT,NULL,0))
{
cout<<"Connect mysql fail. "<<mysql_error(mysql)<<endl;
exit(-1);
}
if(mysql_select_db(mysql,DBNAME))
{
cout<<DBNAME<<" is not exist,creating database!"<<endl;
memset(buff,0,sizeof(buff));
snprintf(buff,sizeof(buff),"create database %s",DBNAME);
if(mysql_real_query(mysql,buff,strlen(buff)))
{
cout<<"Create database "<<DBNAME<<" fail. "<<mysql_error(mysql)<<endl;
exit(-1);
}
cout<<"Create database "<<DBNAME<<" success"<<endl;
mysql_select_db(mysql,DBNAME);
}
res=mysql_store_result(mysql);
if(res!=NULL)
mysql_free_result(res);
memset(buff,0,sizeof(buff));
snprintf(buff,sizeof(buff),"select * from %s",TABLENAME);
if(mysql_real_query(mysql,buff,strlen(buff)))
{
memset(buff,0,sizeof(buff));
snprintf(buff,sizeof(buff),"create table %s(%s int(4) not null primary key auto_increment,%s char(128))",TABLENAME,FILEID,URL);
res=mysql_store_result(mysql);
if(res!=NULL)
mysql_free_result(res);
if(mysql_real_query(mysql,buff,strlen(buff)))
{
cout<<"Create table "<<TABLENAME<< "fail. "<<mysql_error(mysql)<<endl;
exit(-1);
}
cout<<"Create table "<<TABLENAME<<" success"<<endl;
}
res=mysql_store_result(mysql);
if(res!=NULL)
mysql_free_result(res);
res=NULL;
}
int MySqlServer::insert_htmlfile(const char *url)
{
if(mysql==NULL)
{
cout<<"Connect database fail! "<<mysql_error(mysql)<<endl;
return false;
}
char buff[256]={0};
snprintf(buff,sizeof(buff),"insert into %s(%s) values('%s')",TABLENAME,URL,url);
if(mysql_real_query(mysql,buff,strlen(buff)))
{
cout<<"Registration SQL failure! "<<mysql_error(mysql)<<endl;
return false;
}
int fid=mysql_insert_id(mysql);
res=mysql_store_result(mysql);
if(res!=NULL)
mysql_free_result(res);
res=NULL;
return fid;
}
MySqlServer::~MySqlServer()
{
if(res!=NULL)
{
mysql_free_result(res);
res=NULL;
}
mysql_close(mysql);
delete mysql;
mysql=NULL;
}