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.