Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL嵌入式版本的小程序例子

WBOY
Freigeben: 2016-06-07 16:18:24
Original
1394 Leute haben es durchsucht

# This assumes the MySQL software is installed in /usr/local/mysql #inc := /usr/local/mysql/include/mysql #lib := /usr/local/mysql/lib # If you have not installed the MySQL software yet, try this instead topdir := /home/mysql/mysql-5.5.35

# This assumes the MySQL software is installed in /usr/local/mysql

#inc      := /usr/local/mysql/include/mysql

#lib      := /usr/local/mysql/lib

 

# If you have not installed the MySQL software yet, try this instead

topdir   := /home/mysql/mysql-5.5.35

inc      := $(topdir)/include

lib      := $(topdir)/libmysqld

 

CXX      := g++

CPPFLAGS := -I$(inc) -D_THREAD_SAFE -D_REENTRANT

CXXFLAGS := -g -Wall

LDFLAGS  :=

# You can change -lmysqld to -lmysqlclient to use the

# client/server library

LDLIBS    = -L$(lib) -lmysqld -lm -lcrypt -ldl -lz -lrt

 

ifneq (,$(shell grep FreeBSD /COPYRIGHT 2>/dev/null))

# FreeBSD

LDFLAGS += -pthread

else

# Assume Linux

LDLIBS += -pthread

endif

 

# This works for simple one-file test programs

sources := $(wildcard *.cc)

objects := $(patsubst %cc,%o,$(sources))

targets := $(basename $(sources))

 

all: $(targets)

 

clean:

    rm -f $(targets) $(objects) *.core

 

---

#include

#include

#include

 

using namespace std;

 

const char *server_options[] =

       { "mysql_test", "--defaults-file=my.cnf", NULL };

int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

 

const char *server_groups[]= { "libmysqld_server",

                               "libmysqld_client",

                               NULL};

 

bool is_server_started= false;

 

MYSQL *MySQL= NULL;

 

const char *db= NULL;

 

void start_server()

{

  cout

  if (mysql_library_init(num_elements, (char **) server_options, (char **) server_groups)) {

    is_server_started= false;

    cout

  }

  else {

    is_server_started= true;

    cout

  }

}

 

void stop_server()

{

  cout

  mysql_server_end();

}

 

bool connect_server()

{

  cout

  bool rc = true;

 

  MySQL = mysql_init(NULL);

  if (!MySQL)

    return rc;

 

  if (mysql_real_connect(MySQL, NULL, NULL, NULL, db, 0, NULL, 0))

    rc = false;

  

  MySQL->reconnect= 1;

  return rc;

}

 

void output_rows(MYSQL_RES *res)

{

  MYSQL_ROW row;

  unsigned long n = 0;

 

  while ((row= mysql_fetch_row(res)) != 0)

  {

    mysql_field_seek(res, 0);

    for (unsigned int i= 0 ; i

      cout

  }

}

 

bool get_dbs()

{

  MYSQL_RES *res;

 

  if (!is_server_started)

    return true;

 

  if (!(res= mysql_list_dbs(MySQL, "%")))

    return true;

 

  output_rows(res);

  mysql_free_result(res);

  return false;

}

 

int main(int argc, char *argv[])

{

  start_server();

  if (is_server_started) {

    cout

    if (!connect_server()) {

      get_dbs();

    }

    stop_server();

  }

 

  return 0;

}

 

---

[libmysqld_client]

 

[libmysqld_server]

basedir=/home/mysql/

datadir=/home/mysql/data

tmpdir=/home/mysql/tmp

log-error=/home/mysql/alert.log

lc_messages_dir=/home/mysql/share

 

innodb_data_home_dir=/home/mysql/data

innodb_log_group_home_dir=/home/mysql/data

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!