Windowsfehler bei MySQL Query

StormsoN

Grünschnabel
Hi und Hallo! Mein Konsolenprogramm stürzt ab wenn ich diese Zeile ausführen möchte:


Code:
char tmp1[43] = "SELECT number FROM card WHERE card.number=";
char tmp2[27] = "123NUR456Ein78Test90STRING";
char merge[70]; 
strcat(tmp1, tmp2);

if ( mysql_query(my, tmp1) ) {
            fprintf (stderr, "Fehler mysql_query():" "%u (%s)\n",mysql_errno (my), mysql_error (my));
            printf("0 - Locking SQL Fehler");
        }      
        else {
            result = mysql_store_result(my);
            rows = mysql_num_rows(result);
            cout<<"Kartennummer OK!\n";

Datenbankverbindung ist erfolgreich aufgebaut und das ist das erste query.
Datenbankeinträge und -Tabellen sind korrekt und funktionieren.


Kann mir bitte jemand sagen woran es liegt, dass sich das Konsolenprogramm "aufhängt"?



LG, StormsoN
 
Zuletzt bearbeitet:
Hi und Hallo! Mein Konsolenprogramm stürzt ab wenn ich diese Zeile ausführen möchte:


Code:
char tmp1[43] = "SELECT number FROM card WHERE card.number=";
char tmp2[27] = "123NUR456Ein78Test90STRING";
char merge[70]; 
strcat(tmp1, tmp2);


tmp1 ist ein chararray mit 43 Zeichen
tmp2 ist ein chararray mit 27 Zeichen

strcat hängt tmp2 and tmp1 hinten dran, also 43 + 27 = 70 Zeichen

Nun die Preisfrage. Wie groß ist der Speicherbereich für tmp1 nochmal?

Was Du machen wolltest war wohl:
Code:
strcat(merge, tmp1);
strcat(merge, tmp2);

Dann aber nciht vergessen merge zu initialisieren, sonst kann das zu Fehlern fühen.
 
Oh, danke, daran habe ich nicht gedacht.

Ein problem habe ich aber noch bei dieser Lösung, hier mal die ausgaben nach dem ersten strcat und dem zweiten strcat

Code:
?1DSELECT number FROM card WHERE card.number=
?1DSELECT number FROM card WHERE card.number=123NUR456Ein78Test90STRING

wieso treten diese sonderzeichen auf und wie kann ich diese entfernen, dass mein sqlquery funktioniert?

LG StormsoN
 
Zurück