Raised This Month: $51 Target: $400
 12% 

[SOLVED]You have an error in your SQL syntax


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-17-2010 , 13:03   [SOLVED]You have an error in your SQL syntax
Reply With Quote #1

What this can mean, I don't really understand?

Quote:
L 01/17/2010 - 20:02:05: [diablo2LOD.amxx] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0 0#0 0 0 0 0 0 0 0 0 0#0 0 0 0 0 0 0 0 0 0#0 0 0 0 0 0 0 0 0 0#0 0 0 0 0 0 0 0' at line 1

PHP Code:
public MYSQLX_Save_Tid )
{
    
// Make sure our connection is working
    
if ( !g_DBConn )
    {
        return;
    }

    
// Error checking when saving
    
if ( g_PlayerKey[id] <= )
    {
        
// Try again to fetch the uniqueID
        
MYSQLX_FetchUniqueIDid );
        
        
// Okay, we can't really get the uniqueID
        
if ( g_PlayerKey[id] <= )
        {
            new 
szName[128];
            
get_user_nameidszName127 );

            
log_amx"Unable to save XP for user '%s', unique ID: %d"szNameg_PlayerKey[id] );
            
            return;
        }
    }

    
// Save the user's XP!
    
new iLen 0;
    new 
szQuery[512], szData[512];

    
iLen += formatexszDataiLen ], charsmax(szData) - iLen"%d %d#"g_PlayerHero[id], g_CurrentMana[id] );

    for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
    {
        
iLen += formatex szDataiLen ], charsmax(szData) - iLen"%d %d %d %d %d %d %d %d %d %d#"g_PlayerLevel[id][iClass], g_PlayerXp[id][iClass], g_PlayerSkPoints[id][iClass], g_PlayerStPoints[id][iClass], g_Strength[id][iClass], g_Dexterity[id][iClass], g_Vitality[id][iClass], g_Energy[id][iClass], g_Coins[id][iClass], g_CoinsInv[id][iClass] )
    }
    for( new 
iSkill 0iSkill CLASS_MAX_SKILLSiSkill++ ) 
    {
        for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
        {
            
iLen += formatexszDataiLen ], charsmax(szData) - iLen"%d#"g_iSkillsid ][ iClass ][ iSkill ] );
        }
    }
    for( new 
iItems 0iItems <= g_charcounter iItems++ )
    {
        for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
        {
            
iLen += formatexszDataiLen ], charsmax(szData) - iLen"%d %d %d %d %d#",  g_iPlayerItem[id][iClass][iItems], g_iPlayerItemInv[id][iClass][iItems], g_iPlayerItemBolts[id][iClass][iItems], g_iPlayerItemWorn[id][iClass][iItems], g_iPlayerItemRepair[id][iClass][iItems] )
        }
    }
    for( new 
iPotions 0iPotions MAX_POTIONS iPotions++ )
    {
        for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
        {
            
iLen += formatexszDataiLen ], charsmax(szData) - iLen"%d %d#",  g_iPlayerPotions[id][iClass][iPotions], g_iPlayerPotionsInv[id][iClass][iPotions] )
        }
    }

    
formatexszQuerycharsmax(szQuery), "REPLACE INTO `d2_data` (`player_id`, `player_data`) VALUES ('%s', '%s');"g_PlayerKey[id], szData );
    
SQL_ThreadQueryg_DBTuple"_MYSQLX_Save_T"szQuery );

    return;
}
public 
_MYSQLX_Save_TfailstateHandle:queryerror[], errnumdata[], size )
{
    if( 
failstate == TQUERY_CONNECT_FAILED 
    
|| failstate == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"error ); 
        
        return;
    } 
}
public 
MYSQLX_GetAllDataid )
{
    
// Make sure our connection is working
    
if ( !g_DBConn )
    {
        return;
    }
    
    
// Error checking when loading
    
if ( g_PlayerKey[id] <= )
    {
        
// Try again to fetch the uniqueID
        
MYSQLX_FetchUniqueIDid );
        
        
// Okay, we can't really get the uniqueID
        
if ( g_PlayerKey[id] <= )
        {
            new 
szName[128];
            
get_user_nameidszName127 );

            
log_amx"Unable to retrieve XP for user '%s', unique ID: %d"szNameg_PlayerKey[id] );
            
            return;
        }
    }

    new 
szQuery512 ], iData]; 
    
formatexszQuerycharsmaxszQuery ), "SELECT `player_data` FROM `d2_data` WHERE ( `player_id` = '%d' );"g_PlayerKey[id] ); 
     
    
iData] = id;
    
SQL_ThreadQueryg_DBTuple"_MYSQLX_GetAllData"szQueryiData);

    return;
}
public 
_MYSQLX_GetAllDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError );
        
        return;
    } 
    else 
    { 
        new 
id iData];
        
        new 
szData[512], szAllItems[512], szClassLevel[256], szSkills[256], szItems[256], szPotions[256];
        new 
szHero[3], szLevel[4], szXp[10], szSk[4], szSt[5], szCurMana[6], szStr[5], szDex[5], szVit[5], szEne[5], szCoin[10], szCoinInv[11],
        
szPItem[3], szPItemInv[3], szPItemW[3], szPItemRep[5], szItemB[5], szItem[64], szPotion[3], szPotionInv[4];

        new 
ColData SQL_FieldNameToNum(hQuery"player_data"

        while (
SQL_MoreResults(hQuery)) 
        {
            
SQL_ReadResult(hQueryColDataszDatacharsmaxszData ) );

            
strtok(szDataszDatasizeofszData ) - 1szAllItemssizeofszAllItems ) - 1'#')

            
parse(szDataszHerocharsmax(szHero), szCurManacharsmax(szCurMana));

            
g_PlayerHero[id] = str_to_numszHero )
            
g_CurrentMana[id] = str_to_numszCurMana )
            
            for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
            {
                
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                
strtok(szClassLevelszLevelsizeofszLevel ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszXpsizeofszXp ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszSksizeofszSk ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszStsizeofszSt ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszStrsizeofszStr ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszDexsizeofszDex ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszVitsizeofszVit ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszEnesizeofszEne ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszCoinsizeofszCoin ) - 1szCoinInvsizeofszCoinInv ) - 1' ')
            
                
g_PlayerLevel[id][iClass] = str_to_numszLevel )
                
g_PlayerXp[id][iClass] = str_to_numszXp )
                
g_PlayerSkPoints[id][iClass] = str_to_numszSk )
                
g_PlayerStPoints[id][iClass] = str_to_numszSt )
                
g_Strength[id][iClass] = str_to_numszStr )
                
g_Dexterity[id][iClass] = str_to_numszDex )
                
g_Vitality[id][iClass] = str_to_numszVit )
                
g_Energy[id][iClass] = str_to_numszEne )
                
g_Coins[id][iClass] = str_to_numszCoin )
                
g_CoinsInv[id][iClass] = str_to_numszCoinInv )
            }    
            
            for( new 
iSkill 0iSkill CLASS_MAX_SKILLSiSkill++ ) 
            {
                for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
                {
                    
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                    
strtok(szClassLevelszSkillssizeofszSkills ) - 1szClassLevelsizeofszClassLevel ) - 1'#')

                    
g_iSkills[id][iClass][iSkill] = str_to_numszSkills );
                }
            }
            for( new 
iItems 0iItems <= g_charcounter iItems++ )
            {
                for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
                {
                    
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                    
strtok(szClassLevelszSkillssizeofszSkills ) - 1szClassLevelsizeofszClassLevel ) - 1'#')
                    
strtok(szSkillsszItemssizeofszItems ) - 1szSkillssizeofszSkills ) - 1'#')
                        
                    
strtok(szItemsszPItemsizeofszPItem ) - 1szItemsizeofszItems ) - 1' ')
                    
strtok(szItemsszPItemInvsizeofszPItemInv ) - 1szItemsizeofszItems ) - 1' ')
                    
strtok(szItemsszItemBsizeofszItemB ) - 1szItemsizeofszItems ) - 1' ')
                    
strtok(szItemsszPItemWsizeofszPItemW ) - 1szPItemRepsizeofszPItemRep ) - 1' ')
                    
                    
g_iPlayerItem[id][iClass][iItems] = str_to_numszPItem );
                    
g_iPlayerItemInv[id][iClass][iItems] = str_to_numszPItemInv );
                    
g_iPlayerItemBolts[id][iClass][iItems] = str_to_numszItemB );
                    
g_iPlayerItemWorn[id][iClass][iItems] = str_to_numszPItemW );
                    
g_iPlayerItemRepair[id][iClass][iItems] = str_to_numszPItemRep );
                }
            }
            for( new 
iPotions 0iPotions MAX_POTIONS iPotions++ )
            {
                for( new 
iClass 0iClass MAX_HEROESiClass++ ) 
                {
                    
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                    
strtok(szClassLevelszSkillssizeofszSkills ) - 1szClassLevelsizeofszClassLevel ) - 1'#')
                    
strtok(szSkillsszItemssizeofszItems ) - 1szSkillssizeofszSkills ) - 1'#')
                    
strtok(szItemsszPotionssizeofszPotions ) - 1szItemssizeofszItems ) - 1'#')
                        
                    
strtok(szPotionsszPotionsizeofszPotion ) - 1szPotionInvsizeofszPotionInv ) - 1' ')
                    
                    
g_iPlayerPotions[id][iClass][iPotions] = str_to_numszPotion )
                    
g_iPlayerPotionsInv[id][iClass][iPotions] = str_to_numszPotionInv )
                }
            }
        
            
SQL_NextRow(hQuery)
        }
    } 

PHP Code:
new const szTables[][] = 
{
    
"CREATE TABLE IF NOT EXISTS `d2_data` ( `player_id` int(8) unsigned NOT NULL auto_increment, `player_steamid` varchar(25) NOT NULL default '', `player_ip` varchar(20) NOT NULL default '', `player_name` varchar(35) NOT NULL default '', `player_data` varchar(512) NOT NULL default '', PRIMARY KEY  (`player_id`), KEY `player_name` (`player_name`), KEY `player_ip` (`player_ip`), KEY `player_steamid` (`player_steamid`) ) TYPE=MyISAM;"

P.S. Borrowed some code from DA.
__________________

Last edited by xbatista; 01-18-2010 at 13:31.
xbatista is offline
Send a message via Skype™ to xbatista
Seta00
The Seta00 user has crashed.
Join Date: Jan 2010
Location: Berlin
Old 01-17-2010 , 13:26   Re: You have an error in your SQL syntax
Reply With Quote #2

Don't know if I'm right, but "VALUES ('%s', '%s')" is the only place where you use ' instead of `, and it's where the error points. Try to change it to "VALUES (`%s`, `%s`)"
Seta00 is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-17-2010 , 13:32   Re: You have an error in your SQL syntax
Reply With Quote #3

g_PlayerKey[id] - was int
PHP Code:
formatexszQuerycharsmax(szQuery), "REPLACE INTO `d2_data` (`player_id`, `player_data`) VALUES (`%d`, `%s`);"g_PlayerKey[id], szData ); 
And I also changed to `

Again error:
Quote:
L 01/17/2010 - 200:24: [diablo2LOD.amxx] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
I think the problem can be in :
PHP Code:
new const szTables[][] = 
{
    
"CREATE TABLE IF NOT EXISTS `d2_data` ( `player_id` int(8) unsigned NOT NULL auto_increment, `player_steamid` varchar(25) NOT NULL default '', `player_ip` varchar(20) NOT NULL default '', `player_name` varchar(35) NOT NULL default '', `player_data` varchar(512) NOT NULL default '', PRIMARY KEY  (`player_id`), KEY `player_name` (`player_name`), KEY `player_ip` (`player_ip`), KEY `player_steamid` (`player_steamid`), KEY `player_data` (`player_data`) ) TYPE=MyISAM;"

__________________

Last edited by xbatista; 01-17-2010 at 13:37.
xbatista is offline
Send a message via Skype™ to xbatista
Seta00
The Seta00 user has crashed.
Join Date: Jan 2010
Location: Berlin
Old 01-17-2010 , 13:36   Re: You have an error in your SQL syntax
Reply With Quote #4

What is your SQL server?

EDIT: Query for SELECT is also using ' instead of `

EDIT: Also, modify your error handler to allow us to identify from where the error comes (saving or loading)

Last edited by Seta00; 01-17-2010 at 13:42.
Seta00 is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-17-2010 , 13:38   Re: You have an error in your SQL syntax
Reply With Quote #5

MySQL??
__________________
xbatista is offline
Send a message via Skype™ to xbatista
Seta00
The Seta00 user has crashed.
Join Date: Jan 2010
Location: Berlin
Old 01-17-2010 , 13:42   Re: You have an error in your SQL syntax
Reply With Quote #6

Quote:
Originally Posted by Seta00 View Post
EDIT: Query for SELECT is also using ' instead of `

EDIT: Also, modify your error handler to allow us to identify from where the error comes (saving or loading)
Seta00 is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-17-2010 , 13:56   Re: You have an error in your SQL syntax
Reply With Quote #7

I included sma file you can look.

LOL I'm confused now( it writes that table does not exist, but it exist ^^ and connection not failed, because it creates the table ) :
Quote:
L 01/17/2010 - 20:50:55: [diablo2LOD.amxx] [MYSQLX] Database Connection Failed: [2003] Can't connect to MySQL server on 'localhost' (10061)
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Message: Table 'zombiai.d2_data' doesn't exist (1146)
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Query statement: SELECT `player_id` FROM `d2_data` WHERE `player_name` = 'Infected_Merry';
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] Unable to retrieve XP for user 'Infected_Merry', unique ID: 0
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column 'Infected_Mr.Johnson' in 'field list' (1054)
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `Infected_Mr.Johnson` );
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column 'Infected_Mr.Johnson' in 'field list' (1054)
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `Infected_Mr.Johnson` );
L 01/17/2010 - 20:50:56: [diablo2LOD.amxx] Unable to retrieve XP for user 'Infected_Mr.Johnson', unique ID: 0
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[POD]Infected_Dean (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[POD]Infected_Dean (100)` );
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[POD]Infected_Dean (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[POD]Infected_Dean (100)` );
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] Unable to retrieve XP for user '[POD]Infected_Dean (100)', unique ID: 0
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column 'Infected_Merry' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `Infected_Merry` );
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P*D]Infected_Kennedy (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P*D]Infected_Kennedy (100)` );
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P*D]Infected_Kennedy (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P*D]Infected_Kennedy (100)` );
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] Unable to retrieve XP for user '[P*D]Infected_Kennedy (100)', unique ID: 0
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column 'Infected_Mr.Johnson' in 'field list' (1054)
L 01/17/2010 - 20:50:57: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `Infected_Mr.Johnson` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P*D]Infected_Stacy (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P*D]Infected_Stacy (100)` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P*D]Infected_Stacy (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P*D]Infected_Stacy (100)` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] Unable to retrieve XP for user '[P*D]Infected_Stacy (100)', unique ID: 0
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[POD]Infected_Dean (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[POD]Infected_Dean (100)` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column 'Infected_Merry' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `Infected_Merry` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P0D]Infected_Gordon (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P0D]Infected_Gordon (100)` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Message: Unknown column '[P0D]Infected_Gordon (100)' in 'field list' (1054)
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] [MYSQLX] Query statement: INSERT INTO `d2_data` ( `player_id` , `player_name` ) VALUES ( NULL , `[P0D]Infected_Gordon (100)` );
L 01/17/2010 - 20:50:58: [diablo2LOD.amxx] Unable to retrieve XP for user '[P0D]Infected_Gordon (100)', unique ID: 0
Attached Files
File Type: sma Get Plugin or Get Source (mysql.sma - 711 views - 14.0 KB)
__________________
xbatista is offline
Send a message via Skype™ to xbatista
Seta00
The Seta00 user has crashed.
Join Date: Jan 2010
Location: Berlin
Old 01-17-2010 , 14:05   Re: You have an error in your SQL syntax
Reply With Quote #8

I have to go now but I'll give a look in your source and post later.
Seta00 is offline
Seta00
The Seta00 user has crashed.
Join Date: Jan 2010
Location: Berlin
Old 01-17-2010 , 17:17   Re: You have an error in your SQL syntax
Reply With Quote #9

Can you upload the full source?
Seta00 is offline
Doc-Holiday
AlliedModders Donor
Join Date: Jul 2007
Old 01-17-2010 , 17:30   Re: You have an error in your SQL syntax
Reply With Quote #10

I believe its for his gun xp mod
Doc-Holiday is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:08.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode