C++ Datenbank verbinden?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Deine PHP-API funktioniert also bereits? Du kannst mittels einer URL einen GET-/POST-Request verschicken und eine valide Antwort kommt zurück?

Für den Request, den du mit C++ verschicken möchtest, kannst du nun eine Bibliothek wie curlpp verwenden. Verschiedene Beispiel für dessen Gebrauch findest du hier.

PHP funktioniert perfekt. Diese habe ich auch bereits für ein ähnliches Project mit JAVA erfolgreich verwendet. Ich hab curlpp bereits ausprobiert:

#include "pch.h"

#include <string>

#include <sstream>

#include <iostream>

#include <curlpp/cURLpp.hpp>

#include <curlpp/Easy.hpp>

#include <curlpp/Options.hpp>

int main(int, char **)

{

curlpp::Cleanup myCleanup;

std::ostringstream os;

os << curlpp::options::Url(std::string("www.meineurl.de/anmelden.php"));

std::string asAskedInQuestion = os.str();

}

Leider spuckt mir Visual Studio viele Fehler aus:

z.B: "Eine als ''dllimport" deklarierte Funktion darf nicht definiert werden.

0
@regex9

Ich habe mir die Daten heruntergeladen und diese dann in Visual Studio hinterlegt. Verzeih mir bitte falls dies komplett Falsch ist ich bin leider neu in C++.

0
@llikom

Unverzeihlich. 😁 Öffne mal die NuGet-Konsole unter Tools > NuGet Package Manager > Package Manager Console und gib den Install-Package-Befehl von der Seite ein, die ich dir in meinem vorherigen Kommentar verlinkt habe. Wenn du lieber mit einer grafischen Oberfläche arbeitest, kannst du auch im Solution Explorer auf deine Solution / dein Projekt mit rechts klicken und Manage NuGet Packages (oder so ähnlich) auswählen. Im Folgedialog wäre curlpp zu suchen und zu installieren.

NuGet ist im Grunde ein in Visual Studio integrierter Dienst, mit dem sich einfach externe Bibliotheken installieren lassen, die zuvor im NuGet-Repository einmal hochgeladen wurden. Es macht einiges einfacher, du kannst schneller und unkomplizierter die für dein Projekt passende Version installieren. Versuche es stets zu nutzen, wenn es sich anbietet.

0
@regex9

Okay VIELEN DANK für die ausführliche Antwort. hat alles super geklappt außer das Programm das hat immer noch den dllimport fehler

0
@regex9

Es liegt auch nicht am Pc sondern an mir hab es nämlich an einen anderen Pc auch ausprobiert

0
@llikom

Hmn. Das verstehe ich gerade nicht. Funktioniert es denn nun irgendwo / auf irgendeinem PC von dir? Wenn es bei beiden nicht läuft, sehe ich eher das Problem bei der Bibliothek. Wenn ich heute dazu komme, probiere ich es einmal bei mir aus.

0
@llikom

So wie es aussieht, ist die Bibliothek unvollständig und in keinem Release für MSVC gebrauchbar. Oder ich bin das Problem. Jedenfalls bekomme ich die Bibliothek ärgerlicherweise auch nicht zum Laufen.

Also erst einmal wieder die Bibliothek löschen: Rechtsklick auf den Projektnamen im Solution Explorer > Manage NuGet Packages und dort alle Pakete wieder entfernen. Wenn Pakete in der Liste nicht deinstalliert werden, stellen sie noch eine Abhängigkeit für ein anderes Paket dar, welches zuvor herausgeworfen werden muss.

Ich habe nun Alternativen herausgesucht:

Zuerst - und da hätte ich früher drauf kommen können - die Lösung, die NET bietet: HTTPWebRequest. Ein Beispiel findet sich hier. Die verlinkte Webseite listet zudem noch andere Bibliotheken u.ä. mitsamt jeweiligem Beispiel auf.

Dann habe ich noch auf Stackoverflow ein Beispiel gefunden. Ironischerweise kam man da mit curlpp auch nicht so zurecht. Schau dir den zweiten Code Abschnitt in der Antwort von Software_Designer an: https://stackoverflow.com/questions/1011339/how-do-you-make-a-http-request-with-c

Zwei Änderungen waren notwendig - ich wollte es jetzt einfach einmal schnell in einen ausführbaren Zustand bekommen:

1)

char szUrl = (char)"http://stackoverflow.com"; // line 25 or line 2 of main

2)

Warning bezüglich deprecated Methoden deaktiveren:

  1. Rechtsklick auf den Projektnamen im Solution Explorer > Eigenschaften
  2. Linkes Menü: C/C++ aufklappen und den Unterpunkt Command Line wählen
  3. Unter Additional Options folgende Zeile einfügen und den Dialog bestätigen:

/D _CRT_SECURE_NO_WARNINGS

1
@regex9

VIELEN HERZLICHEN DANK für deine ganze Mühe. Das werde ich sofort ausprobieren!

0
@regex9

Funktioniert! TOP :). Vielen Dank!!!

0

???

Wenn deine Datenbank eh am Netz hängt, kannst du auch direkt mit ODBC oder OLE DB verbinden.

Ansonsten sendest du halt einen HTTPS POST auf deine PHP Datei mit Passwort und Name, prüfst diese Serverseitig mit der DB ab und gibts "OK" zurück, oder eine zufällige lange ID für zukünftige Aktionen (als eine Art Logintoken) bis zum Ausloggen.

Nein da eine Firewall den Zugriff von außen blockt (was ja richtig ist). Ja das mit dem HTTP Request weiß ich auch bereits mir geht es darum wie ich das in C++ mache da bei mir gewisse lib wie curlpp nicht funktioniert.

0
@llikom

Hmm, muss es zwanghaft C++ sein? mit C++/CLR (Neues Projekt->C++->CLR) kannst du .NET nutzen und da einfach die HttpWebRequest Klasse , oder komplett stressfrei mit C#

0

Wieso so kompliziert?

C/C++ hat doch eigens eine Bibliothek dazu.

Könntest du mir vielleicht dazu ein Link schicken?

0

PHP echo - Leerzeichen zwischen SQL Spalten in einer Select Box?

Moin liebe Community,

ich versuche mir grade nebenbei etwas HTML, PHP, usw. beizubringen. Also ich bin ein noch eigentlich ein blutiger Anfänger der sich langsam voran tastet.

Ich habe grade mal versucht mit einem Tutorial einen AJAX Zugriff auf eine Datenbank zu machen und dann das ganze in Select Boxen auszuwählen.

Die Datenbank ist recht billig. Es gibt die Tabellen CPUs, Mainboards und RAM. Nun wollte ich gerne einen Prozessor auswählen und über den Sockel passende Mainboards anzeigen.

Das ganze klappt eigentlich auch schon. Nur die Ausgabe finde ich recht bescheiden. Da ich noch nicht wirklich erfahren bin, frage ich mich, ob man in der Ausgabe Leerzeichen hinzufügen kann?

<select name="cpu" id="cpu">
<option value="">Bitte CPU wählen</option>
<?php
if($rowCount > 0){
    while($row = $query->fetch_assoc()){ 
        echo '<option value="'.$row['Sockel'].'">'.$row['Hersteller'].$row['TYP'].$row['CPU'].'</option>';
    }
}else{
    echo '<option value="">CPUs nicht auswählbar</option>';
}
?> </select>

In der Zeile:

echo ''.$row['Hersteller'].$row['TYP'].$row['CPU'].'';

definiere ich welche Spalten ausgegeben werden sollen.

Das Endresultat sieht dann z.B. so aus : Inteli77700k.

Kann ich hier irgendwie Leerzeichen einfügen, damit das ganze richtig angezeigt wird ? Also Intel i7 7700k.

Danke im Voraus

...zur Frage

Datenbank ohne programmieren erstellen?

Hallo. Ich möchte mir eine Datenbank erstellen, habe leider aber keine Programmierkentnisse. Gibt es da ein Programm, mit welchem man kostenlos eine Datenbank erstellen kann?

...zur Frage

Wie kann man eine PHP Variable bei Klick auf beispielsweise einen p-Tag mit einem bestimmten Wert füllen?

Auf der ersten Seite sind Rezepte aufgelistet. Die Rezept-Daten wie z.B. die Titel der Rezepte sind in einer MySQL-Datenbank gespeichert. Die Titel lasse ich auf der ersten Seite alle ausgeben. Nun möchte ich, dass bei einem Klick auf den Titel der Nutzer auf eine andere Seite gelangt, auf der das vollständige Rezept steht. Dabei möchte ich aber nicht für jedes Rezept manuell eine Unterseite erstellen, denn dann hätte ich mir das mit der Datenbank schenken können.

Bisher habe ich ein

eingerichtet, bei dem der anzuklickende p-Tag als Submit-Button dient. Nun muss ich noch mittels POST einen Wert, der zum richtigen Rezept führt (z.B. Titel, ID, etc.) an die Seite weiterreichen, die mit dem Submit-Button vom

aufgerufen wird. Allerdings bin ich bisher auf keine Idee gekommen, wie ich eine PHP-Variable bei einem onclick mit einem Wert füllen kann.

Weiß da jemand weiter?

Vielen Dank!

...zur Frage

PHP Datenbank Anbindung?

Hallo, habe ein Webspace mit Domain angemietet und weiß nicht wie ich die Datenbank mittels PHP anbinden kann also was ich bei db_host eingeben muss

<?PHP
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="eihgzgcy_videoportal";

$db=new PDO("mysql:host=$db_host; dbname=$db_name; charset=utf8", $db_user, "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

?>

...zur Frage

Mittels PHP-Skript JSON Datei von Website herunterladen und in CSV konvertieren?

Hallo zusammen,

über den Zugriff auf eine API habe ich die Möglichkeit JSON-Daten abzurufen. Ursprünglich wollte ich diese direkt in MS SQL importieren. Dies ist mir jedoch leider nicht gelungen.

Meine nächste Überlegung ist ein PHP-Skript, welches die Daten von der Website (https://xxxxxxx/API) abruft und dann lokal in eine CSV-Datei unter Angabe des Speicherortes ablegt. Idealerweise sollte dies automatisch alle X Minuten geschehen und die CSV-Datei immer wieder erneuern, um die aktuellsten Daten dann wieder in die MS SQL-Datenbank importieren zu können.

Auf der Website, von der die Daten abgerufen werden sollen, ist eine Authentifizierung mittels Benutzernamen und Passwort erforderlich.

Leider habe ich bisher mit PHP aber nicht viel zu tun gehabt.

Evtl. kann mir hier jemand helfen?

Vielen Dank im Voraus!

...zur Frage

Habe außversehen die phpMyandmin datenbank gelöscht wo bekomme ich eine neue her?

hallo, ich wollte in meiner Datenbank mal wieder ein wenig aufräumen allerdings habe ich dabei die phpMyAdmin datenbank gelöscht, nun kann ich nichts mehr bearbeiten oder Lesen. Auch meine Minecraft plugins haben dadurch keinen zugriff mehr. Wie bekomme ich die wieder, Gibt es eine Art papierkorb, Kann mir vl jemand die Datenbank schicken oder kann ich die irgendwo downloaden?

MFG Ich

...zur Frage

Was möchtest Du wissen?