jesusjones Geschrieben 11. November 2002 Teilen Geschrieben 11. November 2002 hallo, folgendes problem: über ein c skript sollen in intervallen daten von einer db2 in eine mysql datenbank geschrieben werden. die intervalle und so sind kein problem, nur wie spreche ich die mysql unter c an`????:eek: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 12. November 2002 Teilen Geschrieben 12. November 2002 Hallo, hier ist ein kleines Beispiel. /* * mysql_auth.c * * Copyright 1998 Frank Liu (frank@ctcqnx4.ctc.cummins.com) * Distributed under the GPL * * 26 Sep 1999, version 2: * 1. fixed a bug where A_TABLE is defined but never used. * (thanks to [email]luciano.ghezzi@linux.it[/email]) * 2. now you can choose to use either clear text password or * encrypted password in the MySQL table. * 13 Nov 1998, version 1: * initial release * Needs to be compiled/linked with MySQL libs. * Assuming MySQL header files are installed in /usr/local/mysql/include * and MySQL libs in /usr/local/mysql/lib * * On my Linux box: * * cc -I /usr/local/mysql/include -O -o mysql_auth mysql_auth.c \ -L /usr/local/mysql/lib -lmysqlclient -lm * * Then modify the squid.conf to use this external auth program: * * authenticate_program /usr/local/squid/bin/mysql_auth * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "mysql.h" /* comment out next line if you use clear text password in MySQL DB */ #define ENCRYPTED_PASS /* can use NULL for localhost, current user, or no password */ #define DBHOST "localhost" #define DBUSER "user" #define DB "Datenbank" #define DBPASSWORD "passwort" /* table for the user database for the squid authentication, column names for auth username and auth password */ #define A_TABLE "tInternetzugang" #define A_USERNAME "username" #define A_PASSWORD "password" #define A_GESPERRT "gesperrt" #define BUFSIZE 256 main(int argc, char *argv[]) { char buf[BUFSIZE], qbuf[BUFSIZE]; char *p; MYSQL mysql,*sock; MYSQL_RES *res; char passwort[BUFSIZE]; /* make standard output line buffered */ if (setvbuf(stdout, NULL, _IOLBF, 0) != 0) return; while (1) { if (fgets(buf, BUFSIZE, stdin) == NULL) break; if ((p = strchr(buf, '\n')) != NULL) *p = '\0'; /* strip \n */ if ((p = strchr(buf, ' ')) == NULL) { (void) printf("ERR\n"); continue; } *p++ = '\0'; /* buf is username and p is password now */ if (!(sock = mysql_connect(&mysql, DBHOST, DBUSER, DBPASSWORD))) { /* couldn't connect to database server */ (void) printf("ERR\n"); continue; } if (mysql_select_db(sock, DB)) { /* couldn't use the database */ (void) printf("ERR\n"); mysql_close(sock); continue; } sprintf(qbuf, "select " A_USERNAME " from " A_TABLE " where " A_USERNAME " LIKE '%s' and " A_PASSWORD #ifdef ENCRYPTED_PASS "=password('%s') and " A_GESPERRT " = 'N'", buf, p); #else "='%s' and " A_GESPERRT " = 'N'", buf, p); #endif if(mysql_query(sock,qbuf) || !(res=mysql_store_result(sock))) { /* query failed */ (void) printf("ERR\n"); mysql_close(sock); continue; } if ( res->row_count !=0 ) (void) printf("OK\n"); else (void) printf("ERR\n"); mysql_free_result(res); mysql_close(sock); } exit(0); } [/PHP] Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.