SA-MP Forums Archive
MySQL INSERT INTO - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: MySQL INSERT INTO (/showthread.php?tid=256271)



MySQL INSERT INTO - Snipa - 19.05.2011

So yeah, I just converted to MySQL. Here is my register dialog:

pawn Код:
if(dialogid == 1)
    {
        if(!response) return Kick(playerid);
        if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "You are not registered", "Type your password below", "Register"," ");
        new pname[24],ip[50],escname[24],escpass[100],Query[300];
        GetPlayerName(playerid, pname, sizeof(pname));
        mysql_real_escape_string(pname,escname);
        mysql_real_escape_string(inputtext,escpass);
        GetPlayerIp(playerid,ip,50);
        format(Query,300,"INSERT INTO `playerinfo` (`user`,`password`,`IP`,`kills`,`deaths`,`score`,`cash`,`level`,`donor`) VALUES ('%s', '%s', '%s',0,0,0,0,0,0)",escname,escpass,ip);
        mysql_query(Query);
        SendClientMessage(playerid,limegreen,"You have successfully registered!");
        PInfo[playerid][Regged] = 1;
        PInfo[playerid][Logged] = 1;
    }
If I register from the server, it doesn't save. However, when I manually make an account in phpmyadmin and try to login, it works perfectly fine. What is wrong with my Query? Why won't it insert?


Re: MySQL INSERT INTO - Hal - 19.05.2011

have you tried turning debug on, and run the query again. Then post the log here

And im pretty sure that you escape the WHOLE string, not just the password. Like escape the whole query.


Re: MySQL INSERT INTO - Bakr - 20.05.2011

As Hal requested, run debug with the plugin, you probably don't establish connection with the database for whatever reason. The only other reason I could see that may be causing your problem is your query isn't long enough (though I doubt it), assuming you're using the whole length of the password array you created (100).

Also, here are a few pointers:


Re: MySQL INSERT INTO - Snipa - 20.05.2011

Alright, here is my whole debug:

PHP код:
[19:09:11]  
[
19:09:11] ---------------------------
[
19:09:11MySQL Debugging activated (05/19/11)
[
19:09:11] ---------------------------
[
19:09:11]  
[
19:09:33] >> mysql_real_escape_stringConnection handle)
[
19:09:33CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[
19:09:33] >> mysql_queryConnection handle)
[
19:09:33CMySQLHandler::Query(SELECT FROM `playerinfoWHERE `user` = 'Test') - Successfully executed.
[
19:09:33] >> mysql_store_resultConnection handle)
[
19:09:33CMySQLHandler::StoreResult() - Result was stored.
[
19:09:33] >> mysql_num_rowsConnection handle)
[
19:09:33CMySQLHandler::NumRows() - Returned 0 row(s)
[
19:09:33] >> mysql_num_rowsConnection handle)
[
19:09:33CMySQLHandler::NumRows() - Returned 0 row(s)
[
19:09:45] >> mysql_real_escape_stringConnection handle)
[
19:09:45CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[
19:09:45] >> mysql_real_escape_stringConnection handle)
[
19:09:45CMySQLHandler::EscapeString(testpassword); - Escaped 12 characters to testpassword.
[
19:09:45] >> mysql_queryConnection handle)
[
19:09:45CMySQLHandler::Query(INSERT INTO `playerinfo` (`user`,`password`,`IP`,`kills`,`deaths`,`score`,`cash`,`level`,`donor`) VALUES ('Test''testpassword''127.0.0.1',0,0,0,0,0,0)) - An error has occured. (Error ID1054Unknown column 'cash' in 'field list')
[
19:09:56] >> mysql_real_escape_stringConnection handle)
[
19:09:56CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[
19:09:56] >> mysql_queryConnection handle)
[
19:09:56CMySQLHandler::Query(UPDATE `playerinfoSET `score` = '0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[
19:09:56] >> mysql_free_resultConnection handle)
[
19:09:56CMySQLHandler::FreeResult() - Result was successfully free'd.
[19:09:56] >> mysql_real_escape_string( Connection handle: 1 )
[19:09:56] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:09:56] >> mysql_query( Connection handle: 1 )
[19:09:56] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:09:56] >> mysql_free_result( Connection handle: 1 )
[19:09:56] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:00] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:00] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:00] >> mysql_query( Connection handle: 1 )
[19:10:00] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:00] >> mysql_free_result( Connection handle: 1 )
[19:10:00] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:00] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:00] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:00] >> mysql_query( Connection handle: 1 )
[19:10:00] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:00] >> mysql_free_result( Connection handle: 1 )
[19:10:00] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:02] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:02] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:02] >> mysql_query( Connection handle: 1 )
[19:10:02] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:02] >> mysql_free_result( Connection handle: 1 )
[19:10:02] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:02] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:02] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:02] >> mysql_query( Connection handle: 1 )
[19:10:02] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:02] >> mysql_free_result( Connection handle: 1 )
[19:10:02] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:03] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:03] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:03] >> mysql_query( Connection handle: 1 )
[19:10:03] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:03] >> mysql_free_result( Connection handle: 1 )
[19:10:03] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:03] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:03] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:03] >> mysql_query( Connection handle: 1 )
[19:10:03] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:03] >> mysql_free_result( Connection handle: 1 )
[19:10:03] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:09] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:09] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:09] >> mysql_query( Connection handle: 1 )
[19:10:09] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:09] >> mysql_free_result( Connection handle: 1 )
[19:10:09] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:09] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:09] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:09] >> mysql_query( Connection handle: 1 )
[19:10:09] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '0' WHERE `user` = 'Test') - Successfully executed.
[19:10:09] >> mysql_free_result( Connection handle: 1 )
[19:10:09] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:11] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:11] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:11] >> mysql_query( Connection handle: 1 )
[19:10:11] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '4' WHERE `user` = 'Test') - Successfully executed.
[19:10:11] >> mysql_free_result( Connection handle: 1 )
[19:10:11] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:11] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:11] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:11] >> mysql_query( Connection handle: 1 )
[19:10:11] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '4' WHERE `user` = 'Test') - Successfully executed.
[19:10:11] >> mysql_free_result( Connection handle: 1 )
[19:10:11] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:13] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:13] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:13] >> mysql_query( Connection handle: 1 )
[19:10:13] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '5' WHERE `user` = 'Test') - Successfully executed.
[19:10:13] >> mysql_free_result( Connection handle: 1 )
[19:10:13] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:13] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:13] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:13] >> mysql_query( Connection handle: 1 )
[19:10:13] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '5' WHERE `user` = 'Test') - Successfully executed.
[19:10:13] >> mysql_free_result( Connection handle: 1 )
[19:10:13] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:16] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:16] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:16] >> mysql_query( Connection handle: 1 )
[19:10:16] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '5' WHERE `user` = 'Test') - Successfully executed.
[19:10:16] >> mysql_free_result( Connection handle: 1 )
[19:10:16] CMySQLHandler::FreeResult() - The result is already empty.
[19:10:16] >> mysql_real_escape_string( Connection handle: 1 )
[19:10:16] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:10:16] >> mysql_query( Connection handle: 1 )
[19:10:16] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '0', `kills` = '0', `deaths` = '0',`level` = '7', `donor` = '5' WHERE `user` = 'Test') - Successfully executed.
[19:10:16] >> mysql_free_result( Connection handle: 1 )
[19:10:16] CMySQLHandler::FreeResult() - The result is already empty.
[19:11:52] >> mysql_real_escape_string( Connection handle: 1 )
[19:11:52] CMySQLHandler::EscapeString(Test); - Escaped 4 characters to Test.
[19:11:52] >> mysql_query( Connection handle: 1 )
[19:11:52] CMySQLHandler::Query(UPDATE `playerinfo` SET `score` = '
0',`money` = '-1500', `kills` = '0', `deaths` = '3',`level` = '7', `donor` = '5' WHERE `user` = 'Test') - Successfully executed.
[19:11:52] >> mysql_free_result( Connection handle: 1 )
[19:11:52] CMySQLHandler::FreeResult() - The result is already empty. 
EDIT: Oh shit, found out! I stated in the Query "cash" not "money". Ah, retarded me..


Re: MySQL INSERT INTO - Bakr - 20.05.2011

Your error from the debug log says it all; your table isn't constructed correctly. The order you are trying to insert into the database may be incorrect.

Код:
[19:09:45] CMySQLHandler::Query(INSERT INTO `playerinfo` (`user`,`password`,`IP`,`kills`,`deaths`,`score`,`cash`,`level`,`donor`) VALUES ('Test', 'testpassword', '127.0.0.1',0,0,0,0,0,0)) - An error has occured. (Error ID: 1054, Unknown column 'cash' in 'field list')