0

I am currently working on a project where I take an ASCII image .txt file and have it sent to a mySQL database. I have the program read each row of the .txt file and have it appended to a mySQL command string. All is well until I have the string convert into a c_string for mySQL to read. After the 1st row, the following rows does not end with the appended string attached, and I am not too sure why that is the case... It did work the day before, but the results have been inconsistent.

What I use: Visual Studio 2017 Enterprise C++

int main() {
    int i = 0;
    int lineNum;
    ifstream test;
    string stats;
    string queryHolder;
    string asciiHolder[68];
    string query;
    
    //Convert image to Ascii func
    asciiArt();

    conn = mysql_init(NULL);
    if (conn == NULL)
    {
        std::cout << "Error!!\n";
        exit(1);
    }
    connection = mysql_real_connect(conn, "localhost", "root", "password", "database1", 3306, NULL, 0);
    if (connection == NULL) {
        stats = "Connection MYSQL None Exist";
    }
    else
    {
        stats = "MYSQL Connected";
    }

    test.open("C:/Users/user/source/repos/asciiart/asciiart/image.txt");
    if (!test)
    {
        cout << "Error";
        return 0;
    }

    while (getline(test, queryHolder))
    {
        asciiHolder[i] = queryHolder;
        i++;
    }
    lineNum = i;
    
    for (i = 0; i < lineNum; i++)
    {
        cout << asciiHolder[i] << endl;
    }
    test.close();
    
    for (i = 0; i < lineNum; i++)
    {
        query = "insert into table(image) values('";
        query.append(asciiHolder[i]);
        query = query+("')");
        
        //Query comes out correctly ending each row with ')
        //cout << query << endl;

        //const char* finalQuery = query.c_str();
        //cout << finalQuery << endl;

        //c_str only has the first row end with ')
        cout << query.c_str() << endl;

        mysql_query(conn, query.c_str());
    }

    //Display mySQL table
    mysql_query(conn, "select * from image");
    result = mysql_use_result(conn);
    while ((row = mysql_fetch_row(result)) != NULL)
    {
        cout << row[0] << endl;
    }
    

    mysql_close(conn);
    return EXIT_SUCCESS;
}

Sample Output of query: ends with ') on all rows

insert into dragon(dragon) values('                                                                                                     ..::||||||||||::::::::.......             ')
insert into dragon(dragon) values('                                                                                                ..::|||||||||||||++=++============++|:..      ')
insert into dragon(dragon) values('                                                                                          ..::|:::::::::::::::::|||||++++===$$$$=+:  .  ...   ')
insert into dragon(dragon) values('                                                                                   ..:::::::::::::::::::::::::::||||+++++==$$===|             ')
insert into dragon(dragon) values('                                                                                 .::::::::::::::::::|:::::|:::::::||+++++$====+:.             ')
insert into dragon(dragon) values('                                                                               .::::::::::::::::::::||::::::::::::::|+++======:               ')
insert into dragon(dragon) values('           .:|+++|:.                                                         .:::::::::::::::::::::::::|||||||||||||+++==$$$+.:               ')
insert into dragon(dragon) values('         .::||+++.                                               ::.       .:|:::::::::::::::::|:::::||||||||||+|+++=+=======+.               ')
insert into dragon(dragon) values('        .::::||||:.....:||||||||:::..                           :::      .:||:::::::::|||||||||||||||||||++|+||++++++=======$+:               ')
insert into dragon(dragon) values('       .:::::::|:::|||||||||||+++=====|:                       :|:     :|||::::::|||||||||||||||||||:::::||||||||+===========+:               ')
insert into dragon(dragon) values('      :::::::::|||||||:::|:||+++=====|.....                    .|:. .:||:::||||||||::::::::|||::::::::::::||||++++===$$$$$$$==+:              ')
insert into dragon(dragon) values('     ::::::||||::::::::::::|||||+====|                          |||:|||||||||:::::::::::::::::::::::::||++++++===$$$$$$$++|:...::::.          ')
insert into dragon(dragon) values('     .:::::|+:::::::::||||||||||+==$=:                          :||+++|||::::::::::::::::::::::::::::|::|:||+++==$$$===|.          ..         ')
insert into dragon(dragon) values('      |:.::+|:|||||::::||||||||||++==+:.                        .||+++||::::||||||||||||||::::::::::|+|||++++===$$$=+:               .        ')
insert into dragon(dragon) values('      ::.:||:|||||||||||::|||||+++++===|...                      ::|::|||:::::::::::::::::||||:||||||||||+====$$$$++:                         ')
insert into dragon(dragon) values('   .  :::|+|||||||||:::::::::|::|||+++===|......         ........::||:|||||:::::::::::::::::::|++|++++++++++==$=$=:                           ')
insert into dragon(dragon) values('   :. |:|+|+++||||:::::::::::||||||||++====+:......     .........:||+|:::::|||::::::::::::::||||+==++=======$$$|=+                            ')
insert into dragon(dragon) values('   ..:|||+++++|||||::::::::::::||||+++====$=+|...... . ..........:||||::::::::|||:::::::::::|||||+++==$$====$$$$$=:                           ')
insert into dragon(dragon) values('        :|++++||||||||||||||||||||||||++===|:::..................:|||+:::::::::::|||::::::::||||||++++=$$$$$$$$$$$+                           ')
insert into dragon(dragon) values('          .:|++++||:::::|||||||++|++++++=$=+.....................:|||+|::::::::.::::|||::::|||||||++===$$$$$$$$$===:                          ')
insert into dragon(dragon) values('             .:||+++|::::::::::|||+=+++====|.....................::||++:::::::::::::::||||||||++=+=====$$+ |+|:||:|+.                         ')
insert into dragon(dragon) values('               .:||++++|:::::::::::|++=====|.....................::|+++|::::::::::::::::||+||+++=====$$$$=.         :|                        ')
insert into dragon(dragon) values('                  ::|+=+++|::::::::::|++===|.....................:::+|++:.::::::::::::::|||+++++=====$$$+|:           :                       ')
insert into dragon(dragon) values('                    ::||++++|:::::::::|||+==+....................:::|+|||:.:::::::::::|:|+++++====$=$$+=               .                      ')
insert into dragon(dragon) values('                    ..::::||++||:::::::::|+===:..................:::|+||+:..::::::::::|||||+====$$$$$$=+                                      ')
insert into dragon(dragon) values('                    ....:::.:|||||::::|::::|+==+.................:::|+||||..:::::::::::||||+==$==$$$=$=.                                      ')
insert into dragon(dragon) values('                   ....  .::.:||||||++=||||:+====:..............:|:::+||||:..::::::::::||+++==$$==$==:.                                       ')
insert into dragon(dragon) values('                 .....    .:::||||:||||||+:::+===+..............|::::|||||:....:::|||||||+===$=====$$=                                        ')
insert into dragon(dragon) values('                 .....  ..::|||||||||||:|||::|++|..............:::::::+|||:..::::::|++++++=$=$$==$$=$+                                        ')
insert into dragon(dragon) values('                .....::::||||||||||||||+++=|:+=|..............:::::..:++|||::::::::|++++===$$$$$$====|                                        ')
insert into dragon(dragon) values('                 ....:|||:::|||:::|:::||+++|:+=+.............:::::::|++|||::::::::|+++=====$==+|+||+:+:                                       ')
insert into dragon(dragon) values('                 .::..:..    :||||::::||:+++|+=+............::::::|++|||::.::::::||+===$$+|||.        :.                                      ')
insert into dragon(dragon) values('                 ..::......:.:|++|:::||||+=|:+=:. ..... . .::::||++||::...:::::||++=+=$==|::::.        :                                      ')
insert into dragon(dragon) values('                  .:::...:::|||::|||||+=++=+:|=|.........::::|++++|::::.::::||||++======|::::::::...   .                                      ')
insert into dragon(dragon) values('                   ......::|+:..:::|||+++=|.:|==.......::||++++|||:::::::::||++|+=+====+|||:::::::::::..                                      ')
insert into dragon(dragon) values('                     ....|+|:..:::|||+++=|+:||==|....:|+++++++|:.:::::::||++===++===+:||||||:::::::::::::                                     ')
insert into dragon(dragon) values('                         .:...:::::+=++==:::|+=$|.:|++|||++++|.:::::||||||+=========::||||||:::::::::::..:                                    ')
insert into dragon(dragon) values('                          . :::::||+++=||:::|+++=+++||+++++|:.::::|||||++++=====|+:::::::::::::::::::::::.                                    ')
insert into dragon(dragon) values('                           .:::::|++===||:|++++++++++++++|:.:::::|||||++======+=:..:::::::.....:::::::::..                                    ')
insert into dragon(dragon) values('                         ..:::|:::|++==+++++|+|+===++++|::::::::|+++++=+|+===|.:....::::.......::::::::.                                      ')
insert into dragon(dragon) values('                         .::::::::+++++==+|||||++===|::::::::::|+===========:........:::.::::::::::::...                                      ')
insert into dragon(dragon) values('                         ..:::::::||+++++||||++||===+::::::::||++======|+|+:..........:::::::::::::::..                                       ')
insert into dragon(dragon) values('               ..        .:::::|:::|||::::::+=+||+=+=:::::::|+++==++==+ .................:::::::::::.:.                                       ')
insert into dragon(dragon) values('            ::|:||:.     .:||::::::|:::::::|+$=|||+==|::::|++===$===|:.....................::::::::::.                                        ')
insert into dragon(dragon) values('            :::::||||    :||||:||+|+|:..::||+=++||+==+|||||+====+. ..  ....................::::::::::::..                                     ')
insert into dragon(dragon) values('               .::|:|:   :||:::||++|+:::||++==++||+==+|||||====.    ...... ................::::::::::::::....                                 ')
insert into dragon(dragon) values('            .:||::||||:  |+|:|||++||+|:||||||=+||||++=++|+++==|          .  ................::::::..::::.....                                 ')
insert into dragon(dragon) values('             .   ..|||||:::||++++++=|||+|::::|++|||||++=++++==.                 . ..........:::::::::........                                 ')
insert into dragon(dragon) values('                   .|::::|+||||||||++|||||||||:||::||||++++|+=.                    ............:::............                                ')
insert into dragon(dragon) values('                    .|::::||||  ..::||++|:::||:::..:|:::|++++=+|.                   ...........::.:.......                                    ')
insert into dragon(dragon) values('                      .:|||||.        .:||:||||||::.:::::|||+==+++:                 ..........::::.....                                       ')
insert into dragon(dragon) values('                         .:|:            .||||||:|:::::||:|::|++||+|:.                  .............                                         ')
insert into dragon(dragon) values('                                               .|+|||::::||:::|||+|||::.                  ........                                            ')
insert into dragon(dragon) values('                                               |+|++||||||||:|::|::|:|||.                                                                     ')
insert into dragon(dragon) values('                                               :|||+=+++|++||:::|:::||||||.                                                                   ')
insert into dragon(dragon) values('                                               :||||+|+|++||:::|::|||||++||:                                                                  ')
insert into dragon(dragon) values('                                                ||||++|++|:|||::|:||||:||+|||.                                                                ')
insert into dragon(dragon) values('                                                .|||:.  ||:.|+|:||+||::::||+|||                        ::.|::.::                              ')
insert into dragon(dragon) values('                                                  .     |||:.||||+++||:::::||||:                   .||+|||:|::::::.                           ')
insert into dragon(dragon) values('                                                        ||||:..:: .++|:::::::+||:                ::||||||||:..:::||                           ')
insert into dragon(dragon) values('                                                        .++|||.    |||:. :::::||||.             |+||||||:.      .:|                           ')
insert into dragon(dragon) values('                                                         :|||:.    .+|||: .:::::||:.          :|||++||:.         :.                           ')
insert into dragon(dragon) values('                                                         .:..:.     .||:.:. ::::||||:        .||+||:|.                                        ')
insert into dragon(dragon) values('                                                                     ||:.    .|::|+|||..   :|||+|+::                                          ')
insert into dragon(dragon) values('                                                                       ..      :|:|||+++++++++|:::.                                           ')
insert into dragon(dragon) values('                                                                                .|||:||||++::||:.                                             ')
insert into dragon(dragon) values('                                                                                  .::|:|:::::.                                                ')

Sample Output of query.c_str(): only ends with ') after first row

insert into dragon(dragon) values('                                                                                                     ..::||||||||||::::::::.......             ')
insert into dragon(dragon) values('                                                                                                ..::|||||||||||||++=++============++|:..
insert into dragon(dragon) values('                                                                                          ..::|:::::::::::::::::|||||++++===$$$$=+:  .  ...
insert into dragon(dragon) values('                                                                                   ..:::::::::::::::::::::::::::||||+++++==$$===|
insert into dragon(dragon) values('                                                                                 .::::::::::::::::::|:::::|:::::::||+++++$====+:.
insert into dragon(dragon) values('                                                                               .::::::::::::::::::::||::::::::::::::|+++======:
insert into dragon(dragon) values('           .:|+++|:.                                                         .:::::::::::::::::::::::::|||||||||||||+++==$$$+.:
insert into dragon(dragon) values('         .::||+++.                                               ::.       .:|:::::::::::::::::|:::::||||||||||+|+++=+=======+.
insert into dragon(dragon) values('        .::::||||:.....:||||||||:::..                           :::      .:||:::::::::|||||||||||||||||||++|+||++++++=======$+:
insert into dragon(dragon) values('       .:::::::|:::|||||||||||+++=====|:                       :|:     :|||::::::|||||||||||||||||||:::::||||||||+===========+:
insert into dragon(dragon) values('      :::::::::|||||||:::|:||+++=====|.....                    .|:. .:||:::||||||||::::::::|||::::::::::::||||++++===$$$$$$$==+:

Sample output from mysql: only displays first row

mysql> select * from dragon;
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
| dragon                                                                                                                                          | id |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
|                                                                                                      ..::||||||||||::::::::.......              |  1 |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
1 row in set (0.00 sec)

Edits After my code goes through the image to ascii conversion function, somehow the newly created txt file has null terminators on the end of each row.. Just simply going into the file and adding a space in any line then saving it allowed my program to functionally work. I'm confused in why that happens.

katsurice
  • 1
  • 1
  • 1
    Let me guess, embedded null characters? See what data or outputting `query` directly prints. – Tanveer Badar Aug 06 '20 at 16:58
  • @TanveerBadar I have posted an image of what query directly prints. It takes in what it needs to take in. – katsurice Aug 06 '20 at 17:01
  • Q: Why are you hard coding `string asciiHolder[68];` instead of using a vector? – paulsm4 Aug 06 '20 at 17:01
  • 1
    Please don't post images of text, copy-paste text *as text*. Also please take some time to read [the help pages](http://stackoverflow.com/help), take the SO [tour], read [ask], as well as [this question checklist](https://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/). – Some programmer dude Aug 06 '20 at 17:02
  • @paulsm4 Sorry, I'm kind of a beginner.. I was just testing around. – katsurice Aug 06 '20 at 17:07
  • @Someprogrammerdude Thank you, I will change it. – katsurice Aug 06 '20 at 17:09

0 Answers0