c und mysql

marcc

marcc

Tripel-As
hallo..
ich setzte mich zur zeit mit c auseinandern. ist auch sehr interessant und man findet viele infos im inet. aber jetzt komm grad garnicht weiter.

will mit c auf mysql zugreifen. und mir fehlen da doch sicher entliche header dateien. mysql.h usw.. weiß jemand wo ich eine gut übersicht finde und kann mir jemand erkären wie man die nachlädt?

gruß marc.
 
Der include für C ist mysql/mysql.h.
Damit du diesen allerdings hast, musst du dein Programm mit dem Mysql-Lib Verzeichnis linken:
Code:
-L/usr/local/mysql/lib -lmysqlclient -lz
Diese beiden Argumente musst du dem gcc bei compilieren übergeben.

Beispiel:
Code:
gcc -L/usr/local/mysql/lib -lmysqlclient -lz -o name name.c

Ansonsten musst du mal googlen, irgendwo gabs da ne Mysql C Api Seite in der Mysql Doku.
 
die c api seit hab schon gefunden http://dev.mysql.com/doc/refman/5.1/de/c.html

mir würde ein beispiel ziemlich weiterhelfen. finde irgendwie keins mit google.

PHP:
<?php

// connect to MySQL
$mysqli = new mysqli($mysqlhost, $mysqluser, $mysqlpasswd, $mysqldb);
if(mysqli_connect_errno()) {
  echo "<p>Sorry, no connection! ", mysqli_connect_error(), "</p>\n";
  exit();
}

  if($result = $mysqli->query("SELECT * FROM table ORDER by date")) {
      while($row = $result->fetch_object()) {

			printf("%d %s", $row->id, $row->name);
      }
  }

// disconnect
$mysqli->close();

?>

wenn ich sowas mal sehen würde wies in c aussieht könnt ich mir den rest eigentlich selbst ableiten..

gruß marc.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

ich sitzt da jetzt schon ewig dran und bin kein bischen voran gekommen.. langsam versteh ich warum mein prof meint c ist keine programmiersprache sondern ein irrtum X(

ich hab xampp laufen und mysql funktioniert natürlich auch.. woher krieg ich jetzt die header datei. und wieso muss man bei c überhaupt die ganzen datein nachladen.. bzw. was heißt das genau "nachladen" ?

kann mich da jemand mal ein bischen aufklären..

gruß marc.
 
Zuletzt bearbeitet:
Oder - spricht was dagegen, auf Postgresql umzusteigen. Die haben eine saugeile
Programmiererschnittstelle auf High-Level-Ebene analog Oracle, DB/2 usw.
exec sql .. usw - wie bei den "großen". Ist echt leicht in C zu programmieren.
Hab bisher nur super gute Erfahrungen gemacht.
 
Auf Grund Deiner PHP-Frage, gehe ich davon aus, daß Du schon Erfahrung mit Dingen wie Variablen, Funktionen, Verzweigungen, Schleifen, Ein- und Ausgabe hast.

Bei C ist unter anderem anders, daß es einen Compiler gibt und dieser schon beim Uebersetzen (bei mir wird kein U-Umlaut angezeigt?) Prüfungen durchführt, ob Funktionen, Rückgabewerte und Argumente richtig gewählt wurden (Stichwort Typprüfung). Die Typen müssen dafür aber vor ihrer Benutzung "deklariert" worden sein, was bei C i.Allg. in den "Header-Dateien" geschieht. Die benötigten Header werden am Anfang einer C-Datei mit "#include" eingebunden.

Falls Du einen MySQL-Client programmieren möchtest, benötigst Du also zum einen die Header-Dateien, zum anderen noch "Bibliotheken", die dann die eigentlichen Funktionen enthalten, die in den Headern angekündigt werden. Nach der Linux-Logik bekommst Du beide, indem Du ein Paket mit dem Namen "mysql-devel" (für Developer) installierst.

Zudem benötigst Du die Dokumentation. Ich empfehle Dir die MySQL-Internetseite. Dort findest Du die Dokumentation für alle Versionen in verschiedenen Sprachen.

Da es nicht unwahrscheinlich ist, daß Du MySQL 5.1 benutzt (Du hättest es vielleicht angeben sollen), verweise ich mal auf diesen Link. Dort gibt es einen Funktionsüberblick - und vor allem: nach der Tabelle eine stichwortartige Zusammenfassung der wichtigsten Abläufe in fünf Schritten ("Application programs should use this general outline for interacting with MySQL [...]"). Alle Befehle sind verlinkt und es gibt auch immer ein paar Beispiele dazu.

Wenn Du Dein Programm aus dem Quellcode übersetzen willst, mußt Du, wie blue-dev bereits gezeigt hat, dem Linker mitteilen, daß Du die MySQL-Bibliothek benutzt. Der Parameter -lmysqlclient teilt mit, daß Du Funktionen benutzt, die in der Bibliothek "libmysqlclient.so" zu finden sind. Allerdings findet der Linker diese Datei nur, falls sie in seinem "Suchpfad" liegt. Falls es nicht automatisch klappt, mußt Du den Suchpfad mit einem Befehl wie -L/usr/local/mysql/lib erweitern - aber Vorsicht: Du solltest zuerst nachschauen, ob die Bibliothek (libmysqlclient.so) auch wirklich an dieser Stelle zu finden ist, z.B. mit find /usr/ -name "libmysqlclient*.so*". Bei mir befindet sie sich nämlich woanders, und ich müßte "-L/usr/lib/mysql/" angeben.
 
danke für die antworten.. ich hab aufgehört zu versuchen mit mysql zu arbeiten und mich ein bischen in postgresql reingelesen. das funktioniert bis jetzt auch sehr gut..
spricht was dagegen, auf Postgresql umzusteigen.

kannte ich davor noch garnicht.. ;)
 

Ähnliche Themen

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Heimserver Konfiguration für Ubuntu Server?!

externe Libs zu Kernel Modul linken

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Mal komplett was neues aufbauen ?

Zurück
Oben