Avatar billede jakob_lk Nybegynder
26. september 2005 - 18:04 Der er 28 kommentarer og
1 løsning

Mysql connect fjernserver

Hey...

Jeg er ved at prøve at få lavet et lille stump code som connecter til en mysql databasse (ikke samme server som jeg skal køre script på)
Den skal så i en tabel finde alle 'name' hvor deres 'status' er '1'
og skrive det i consol, og derefter rette 'status' til '0'

Nogle der vil hjælpe mig med det så jeg kan komme vidre med at lære denne nye verden at kende !?
Avatar billede arne_v Ekspert
26. september 2005 - 19:03 #1
har du læst mine artikler om brug af MySQL i C og C++ ?
Avatar billede jakob_lk Nybegynder
26. september 2005 - 19:13 #2
hmm....tror jeg ikke....hvor findes den !?
Avatar billede arne_v Ekspert
26. september 2005 - 19:19 #3
Avatar billede jakob_lk Nybegynder
26. september 2005 - 19:45 #4
hmm.... det hjælper mig lidt. men ved stadig ikke helt hvordan jeg skal gribe den an !
Avatar billede arne_v Ekspert
26. september 2005 - 21:08 #5
der er da ellers eksempel på både query og update
Avatar billede jakob_lk Nybegynder
26. september 2005 - 21:18 #6
hvad skal jeg have installer på min server for at køre det ? Jeg køre debian!
Og skal jeg bare skrive det en fil og der efter køre filen ?
Avatar billede jakob_lk Nybegynder
26. september 2005 - 21:44 #7
har fundet ud af det...men når jeg compiler får jeg en masse fejl...

Det er som om at der mangler noget mysql ting til det...



sms.cpp:5:19: mysql.h: Ingen sådan fil eller filkatalog
sms.cpp: I function 'int main()':
sms.cpp:16: error: `MYSQL' undeclared (first use this function)
sms.cpp:16: error: (Each undeclared identifier is reported only once for each
  function it appears in.)
sms.cpp:16: error: `handle' undeclared (first use this function)
sms.cpp:16: error: `mysql_init' undeclared (first use this function)
sms.cpp:19: error: `cerr' undeclared (first use this function)
sms.cpp:19: error: `mysql_error' undeclared (first use this function)
sms.cpp:19: error: `endl' undeclared (first use this function)
sms.cpp:22: error: `mysql_real_connect' undeclared (first use this function)
sms.cpp:28: error: `mysql_query' undeclared (first use this function)
sms.cpp:29: error: `MYSQL_RES' undeclared (first use this function)
sms.cpp:29: error: `result' undeclared (first use this function)
sms.cpp:29: error: `mysql_store_result' undeclared (first use this function)
sms.cpp:31: error: `mysql_num_fields' undeclared (first use this function)
sms.cpp:32: error: `MYSQL_ROW' undeclared (first use this function)
sms.cpp:32: error: tolkningsfejl before `;' token
sms.cpp:33: error: `row' undeclared (first use this function)
sms.cpp:33: error: `mysql_fetch_row' undeclared (first use this function)
sms.cpp:34: error: `mysql_fetch_lengths' undeclared (first use this function)
sms.cpp:39: error: `cout' undeclared (first use this function)
sms.cpp:45: error: `mysql_free_result' undeclared (first use this function)
sms.cpp:47: error: `mysql_close' undeclared (first use this function)
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:02 #8
Har lige fået kortet fejlene ned til lidt minder.

sms.cpp: I function 'int main()':
sms.cpp:19: error: `cerr' undeclared (first use this function)
sms.cpp:19: error: (Each undeclared identifier is reported only once for each
  function it appears in.)
sms.cpp:19: error: `endl' undeclared (first use this function)
sms.cpp:39: error: `cout' undeclared (first use this function)
Avatar billede arne_v Ekspert
26. september 2005 - 22:04 #9
#include <iostream>

using namespace std;

i toppen burde fjerne dem (forudsat C++)
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:07 #10
det fjernet dem...men så kome der bare en masse andre !

/tmp/ccyQLVPg.o(.text+0x19): In function `main':
: undefined reference to `mysql_init'
/tmp/ccyQLVPg.o(.text+0x2d): In function `main':
: undefined reference to `mysql_error'
/tmp/ccyQLVPg.o(.text+0xae): In function `main':
: undefined reference to `mysql_real_connect'
/tmp/ccyQLVPg.o(.text+0xbd): In function `main':
: undefined reference to `mysql_error'
/tmp/ccyQLVPg.o(.text+0x10e): In function `main':
: undefined reference to `mysql_query'
/tmp/ccyQLVPg.o(.text+0x119): In function `main':
: undefined reference to `mysql_store_result'
/tmp/ccyQLVPg.o(.text+0x127): In function `main':
: undefined reference to `mysql_num_fields'
/tmp/ccyQLVPg.o(.text+0x135): In function `main':
: undefined reference to `mysql_fetch_row'
/tmp/ccyQLVPg.o(.text+0x14e): In function `main':
: undefined reference to `mysql_fetch_lengths'
/tmp/ccyQLVPg.o(.text+0x296): In function `main':
: undefined reference to `mysql_free_result'
/tmp/ccyQLVPg.o(.text+0x2a1): In function `main':
: undefined reference to `mysql_close'
collect2: ld returnerede afslutningskoden 1
Avatar billede arne_v Ekspert
26. september 2005 - 22:09 #11
du mangler at linke mod mysql lib - det står beskrevet i den første artikel
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:15 #12
ja.....
det er dem her ikke...
gcc -I/usr/include/mysql query.c /usr/lib/mysql/libmysqlclient.a -lz -o query
gcc -I/usr/include/mysql insert.c /usr/lib/mysql/libmysqlclient.a -lz -o insert

men jeg kan ikke finde query.c og insert.c
Avatar billede arne_v Ekspert
26. september 2005 - 22:17 #13
query.c og insert.c er de to programmer jeg bruger
Avatar billede arne_v Ekspert
26. september 2005 - 22:17 #14
/usr/lib/mysql/libmysqlclient.a -lz

angiver de 2 libs du skal bruge
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:19 #15
hvad mener du ?
Avatar billede arne_v Ekspert
26. september 2005 - 22:21 #16
at du kun skal angive de 2 i din build kommando

(og den første del skal rettes til hvis mysql ligger anderledes hos dig)
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:25 #17
det er jeg ikke med på.
Avatar billede arne_v Ekspert
26. september 2005 - 22:27 #18
hvordan ser din build kommando ud ?
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:28 #19
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
#include "/usr/include/mysql/mysql.h"
int main()
{
        //
        // åben connection til:
        //  server = "localhost"
        //  username = "root"
        //  password = ""
        //  database = "Test"
        //  port = 0 (bliver opfattet som default 3306)
        //
    MYSQL *handle= mysql_init(NULL);
    if(handle == NULL)
    {
        cerr << "MySQL error: " << mysql_error(handle) << endl;
        exit(1);
  }
  if(!mysql_real_connect(handle, "localhost", "root", "", "test", 0, NULL, 0))
  {
        cerr << "MySQL error: " << mysql_error(handle) << endl;
        exit(1);
        }
    // udfør query
    mysql_query(handle, "SELECT * FROM telefonbog");
    MYSQL_RES *result = mysql_store_result(handle);
    // print resultat af query
  int nfields = mysql_num_fields(result);
  MYSQL_ROW row;
  while ((row = mysql_fetch_row(result))) {
        int *l = (int *)mysql_fetch_lengths(result);
        for (int i=0; i<nfields; i++) {
            char *buf = new char[l[i]+1];
            strncpy(buf,row[i] ? row[i] : "NULL",row[i] ? l[i] : 4);
            buf[row[i] ? l[i] : 4] = '\0';
            cout << " " << buf;
            delete[] buf;
            }
            cout << endl;
            }
            // luk query
            mysql_free_result(result);
            // luk connection
            mysql_close(handle);
            return 0;
            }
Avatar billede arne_v Ekspert
26. september 2005 - 22:30 #20
det er dit program

hvordan compiler du det ?
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:31 #21
g++ test.cpp -o test-basse
Avatar billede arne_v Ekspert
26. september 2005 - 22:33 #22
g++ test.cpp /usr/lib/mysql/libmysqlclient.a -lz -o test-basse
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:36 #23
Takker....Du er sku en skatter basse !
Avatar billede arne_v Ekspert
26. september 2005 - 22:37 #24
det virker ?

så vil jeg ligge et svar
Avatar billede jakob_lk Nybegynder
26. september 2005 - 22:38 #25
jeps....

nu tror jeg godt jeg kan finde lidt mere ud af det ! takker igen !
Avatar billede jakob_lk Nybegynder
27. september 2005 - 18:29 #26
har lige lidt mere problemer !

inde i min while der vil jeg gerne have den til at skrive alle navne fra 'name'
Avatar billede jakob_lk Nybegynder
27. september 2005 - 18:43 #27
vil have sådan at den lister alle names..
den skal så køre et linux program med det navn til sidsts
/root/stats --name <name fra tabel>
Avatar billede arne_v Ekspert
27. september 2005 - 21:38 #28
prøv lige og post:

tabel struktur
eksempel data
eksempel på ønsket output
koden som den ser ud nu (meget gerne fornuftigt indrykket)
Avatar billede jakob_lk Nybegynder
27. september 2005 - 22:08 #29
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester