SA-MP Forums Archive
SQL Error - 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)
+--- Thread: SQL Error (/showthread.php?tid=648592)



SQL Error - JaKe Elite - 25.01.2018

PHP код:
// Character's Vehicles
format(sz_Query, sizeof(sz_Query), "CREATE TABLE IF NOT EXISTS `char_vehicles` ");
format(sz_Query, sizeof(sz_Query), "%s(", sz_Query);
for(new 
i; i < MAX_PLAYERVEHICLES; i++)
{
    if(
i >= MAX_PLAYERVEHICLES-1)
    {
        
format(sz_Query, sizeof(sz_Query), "%s`pv%dPosX` FLOAT DEFAULT 0.0, `pv%dPosY` FLOAT DEFAULT 0.0, `pv%dPosZ` FLOAT DEFAULT 0.0, `pv%dPosAngle` FLOAT DEFAULT 0.0, `pv%dModelId` INTEGER DEFAULT 0, `pv%dLock` INTEGER DEFAULT 0, `pv%dLocked` INTEGER DEFAULT 0, `pv%dPaintJob` INTEGER DEFAULT 0, `pv%dColor1` INTEGER DEFAULT 0, `pv%dColor2` INTEGER DEFAULT 0, `pv%dTicket` INTEGER DEFAULT 0, ", sz_Query, i, i, i, i, i, i, i, i, i, i, i);
         
format(sz_Query, sizeof(sz_Query), "%s`pv%dFuel` FLOAT DEFAULT 100.00, `pv%dImpound` INTEGER DEFAULT 0, `pv%dPlate` STRING DEFAULT NULL, `pv%dEZPass` INTEGER DEFAULT 0, `pv%dTicketReason` STRING DEFAULT NULL", sz_Query, i, i, i, i, i);
    }
    else
    {
        
format(sz_Query, sizeof(sz_Query), "%s`pv%dPosX` FLOAT DEFAULT 0.0, `pv%dPosY` FLOAT DEFAULT 0.0, `pv%dPosZ` FLOAT DEFAULT 0.0, `pv%dPosAngle` FLOAT DEFAULT 0.0, `pv%dModelId` INTEGER DEFAULT 0, `pv%dLock` INTEGER DEFAULT 0, `pv%dLocked` INTEGER DEFAULT 0, `pv%dPaintJob` INTEGER DEFAULT 0, `pv%dColor1` INTEGER DEFAULT 0, `pv%dColor2` INTEGER DEFAULT 0, `pv%dTicket` INTEGER DEFAULT 0, ", sz_Query, i, i, i, i, i, i, i, i, i, i, i);
        
format(sz_Query, sizeof(sz_Query), "%s`pv%dFuel` FLOAT DEFAULT 100.00, `pv%dImpound` INTEGER DEFAULT 0, `pv%dPlate` STRING DEFAULT NULL, `pv%dEZPass` INTEGER DEFAULT 0, `pv%dTicketReason` STRING DEFAULT NULL, ", sz_Query, i, i, i, i, i);
    }
}
format(sz_Query, sizeof(sz_Query), "%s)", sz_Query);
db_free_result(db_query(Database, sz_Query)); 
It is printing out a db error and I tried debugging it, When the query is run on the SQLite Browser there seem to be no error. Any clue what could be the problem?

The error:
Код:
[20:15:57] [Warning] db_query: Query failed: near "0": syntax error
[20:15:57] [Error] db_free_result(): invalid result handle 0



Re: SQL Error - iLearner - 25.01.2018

Try using strcat, also your data length per line seems to be too long.


Re: SQL Error - JaKe Elite - 25.01.2018

Same error, tried it with strcat


Re: SQL Error - Steph12 - 25.01.2018

print the query and look if its cut off due to a too short length


Re: SQL Error - JaKe Elite - 25.01.2018

Код:
[19:56:41] [Warning] db_query: Query failed: near "0": syntax error
[19:56:41] [Error] db_free_result(): invalid result handle 0
[19:56:41] CREATE TABLE IF NOT EXISTS `char_vehicles` 
[19:56:41] CREATE TABLE IF NOT EXISTS `char_vehicles` (
[19:56:41] `pv0PosX` FLOAT DEFAULT 0.0, `pv0PosY` FLOAT DEFAULT 0.0, `pv0PosZ` FLOAT DEFAULT 0.0, `pv0PosAngle` FLOAT DEFAULT 0.0, `pv0ModelId` INTEGER DEFAULT 0, `pv0Lock` INTEGER DEFAULT 0, `pv0Locked` INTEGER DEFAULT 0, `pv0PaintJob` INTEGER DEFAULT 0, `pv0Color1` INTEGER DEFAULT 0, `pv0Color2` INTEGER DEFAULT 0, `pv0Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv0Fuel` FLOAT DEFAULT 100.00, `pv0Impound` INTEGER DEFAULT 0, `pv0Plate` STRING DEFAULT NULL, `pv0EZPass` INTEGER DEFAULT 0, `pv0TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv1PosX` FLOAT DEFAULT 0.0, `pv1PosY` FLOAT DEFAULT 0.0, `pv1PosZ` FLOAT DEFAULT 0.0, `pv1PosAngle` FLOAT DEFAULT 0.0, `pv1ModelId` INTEGER DEFAULT 0, `pv1Lock` INTEGER DEFAULT 0, `pv1Locked` INTEGER DEFAULT 0, `pv1PaintJob` INTEGER DEFAULT 0, `pv1Color1` INTEGER DEFAULT 0, `pv1Color2` INTEGER DEFAULT 0, `pv1Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv1Fuel` FLOAT DEFAULT 100.00, `pv1Impound` INTEGER DEFAULT 0, `pv1Plate` STRING DEFAULT NULL, `pv1EZPass` INTEGER DEFAULT 0, `pv1TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv2PosX` FLOAT DEFAULT 0.0, `pv2PosY` FLOAT DEFAULT 0.0, `pv2PosZ` FLOAT DEFAULT 0.0, `pv2PosAngle` FLOAT DEFAULT 0.0, `pv2ModelId` INTEGER DEFAULT 0, `pv2Lock` INTEGER DEFAULT 0, `pv2Locked` INTEGER DEFAULT 0, `pv2PaintJob` INTEGER DEFAULT 0, `pv2Color1` INTEGER DEFAULT 0, `pv2Color2` INTEGER DEFAULT 0, `pv2Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv2Fuel` FLOAT DEFAULT 100.00, `pv2Impound` INTEGER DEFAULT 0, `pv2Plate` STRING DEFAULT NULL, `pv2EZPass` INTEGER DEFAULT 0, `pv2TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv3PosX` FLOAT DEFAULT 0.0, `pv3PosY` FLOAT DEFAULT 0.0, `pv3PosZ` FLOAT DEFAULT 0.0, `pv3PosAngle` FLOAT DEFAULT 0.0, `pv3ModelId` INTEGER DEFAULT 0, `pv3Lock` INTEGER DEFAULT 0, `pv3Locked` INTEGER DEFAULT 0, `pv3PaintJob` INTEGER DEFAULT 0, `pv3Color1` INTEGER DEFAULT 0, `pv3Color2` INTEGER DEFAULT 0, `pv3Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv3Fuel` FLOAT DEFAULT 100.00, `pv3Impound` INTEGER DEFAULT 0, `pv3Plate` STRING DEFAULT NULL, `pv3EZPass` INTEGER DEFAULT 0, `pv3TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv4PosX` FLOAT DEFAULT 0.0, `pv4PosY` FLOAT DEFAULT 0.0, `pv4PosZ` FLOAT DEFAULT 0.0, `pv4PosAngle` FLOAT DEFAULT 0.0, `pv4ModelId` INTEGER DEFAULT 0, `pv4Lock` INTEGER DEFAULT 0, `pv4Locked` INTEGER DEFAULT 0, `pv4PaintJob` INTEGER DEFAULT 0, `pv4Color1` INTEGER DEFAULT 0, `pv4Color2` INTEGER DEFAULT 0, `pv4Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv4Fuel` FLOAT DEFAULT 100.00, `pv4Impound` INTEGER DEFAULT 0, `pv4Plate` STRING DEFAULT NULL, `pv4EZPass` INTEGER DEFAULT 0, `pv4TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv5PosX` FLOAT DEFAULT 0.0, `pv5PosY` FLOAT DEFAULT 0.0, `pv5PosZ` FLOAT DEFAULT 0.0, `pv5PosAngle` FLOAT DEFAULT 0.0, `pv5ModelId` INTEGER DEFAULT 0, `pv5Lock` INTEGER DEFAULT 0, `pv5Locked` INTEGER DEFAULT 0, `pv5PaintJob` INTEGER DEFAULT 0, `pv5Color1` INTEGER DEFAULT 0, `pv5Color2` INTEGER DEFAULT 0, `pv5Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv5Fuel` FLOAT DEFAULT 100.00, `pv5Impound` INTEGER DEFAULT 0, `pv5Plate` STRING DEFAULT NULL, `pv5EZPass` INTEGER DEFAULT 0, `pv5TicketReason` STRING DEFAULT NULL, 
[19:56:41] `pv6PosX` FLOAT DEFAULT 0.0, `pv6PosY` FLOAT DEFAULT 0.0, `pv6PosZ` FLOAT DEFAULT 0.0, `pv6PosAngle` FLOAT DEFAULT 0.0, `pv6ModelId` INTEGER DEFAULT 0, `pv6Lock` INTEGER DEFAULT 0, `pv6Locked` INTEGER DEFAULT 0, `pv6PaintJob` INTEGER DEFAULT 0, `pv6Color1` INTEGER DEFAULT 0, `pv6Color2` INTEGER DEFAULT 0, `pv6Ticket` INTEGER DEFAULT 0, 
[19:56:41] `pv6Fuel` FLOAT DEFAULT 100.00, `pv6Impound` INTEGER DEFAULT 0, `pv6Plate` STRING DEFAULT NULL, `pv6EZPass` INTEGER DEFAULT 0, `pv6TicketReason` STRING DEFAULT NULL
Forgot to print out the ) and don't mind the print out for CREATE TABLE being printed out twice, I glued it up all together and no error was found


Re: SQL Error - InfiniTy. - 25.01.2018

Creating tables should be a "one time only thing", so personally i don't see the point of what you are trying to do.
And also that is a very, very bad design. I would suggest you create the table manually with an easy tool like phpmyadmin and also rethink the system


Re: SQL Error - JaKe Elite - 25.01.2018

I have tried re-organizing the table itself. I separated the weapon/trunk contents & the vehicle modification content, I don't see what else is need to be separated from the main table (and it's SQLite btw)


Re: SQL Error - Dayrion - 25.01.2018

I'm maybe wrong but "STRING" isn't a SQL type.
I tried this query to test and it works:
PHP код:
CREATE TABLE IF NOT EXISTS `char_vehicles` (
`
pv0PosX` FLOAT DEFAULT 0.0, `pv0PosY` FLOAT DEFAULT 0.0, `pv0PosZ` FLOAT DEFAULT 0.0, `pv0PosAngle` FLOAT DEFAULT 0.0, `pv0ModelId` INTEGER DEFAULT 0, `pv0Lock` INTEGER DEFAULT 0, `pv0Locked` INTEGER DEFAULT 0, `pv0PaintJob` INTEGER DEFAULT 0, `pv0Color1` INTEGER DEFAULT 0, `pv0Color2` INTEGER DEFAULT 0, `pv0Ticket` INTEGER DEFAULT 0, 
`
pv0Fuel` FLOAT DEFAULT 100.00, `pv0Impound` INTEGER DEFAULT 0, `pv0Plate` TEXT DEFAULT NULL, `pv0EZPass` INTEGER DEFAULT 0, `pv0TicketReason` TEXT DEFAULT NULL, 
`
pv1PosX` FLOAT DEFAULT 0.0, `pv1PosY` FLOAT DEFAULT 0.0, `pv1PosZ` FLOAT DEFAULT 0.0, `pv1PosAngle` FLOAT DEFAULT 0.0, `pv1ModelId` INTEGER DEFAULT 0, `pv1Lock` INTEGER DEFAULT 0, `pv1Locked` INTEGER DEFAULT 0, `pv1PaintJob` INTEGER DEFAULT 0, `pv1Color1` INTEGER DEFAULT 0, `pv1Color2` INTEGER DEFAULT 0, `pv1Ticket` INTEGER DEFAULT 0, 
`
pv1Fuel` FLOAT DEFAULT 100.00, `pv1Impound` INTEGER DEFAULT 0, `pv1Plate` TEXT DEFAULT NULL, `pv1EZPass` INTEGER DEFAULT 0, `pv1TicketReason` TEXT DEFAULT NULL, 
`
pv2PosX` FLOAT DEFAULT 0.0, `pv2PosY` FLOAT DEFAULT 0.0, `pv2PosZ` FLOAT DEFAULT 0.0, `pv2PosAngle` FLOAT DEFAULT 0.0, `pv2ModelId` INTEGER DEFAULT 0, `pv2Lock` INTEGER DEFAULT 0, `pv2Locked` INTEGER DEFAULT 0, `pv2PaintJob` INTEGER DEFAULT 0, `pv2Color1` INTEGER DEFAULT 0, `pv2Color2` INTEGER DEFAULT 0, `pv2Ticket` INTEGER DEFAULT 0, 
`
pv2Fuel` FLOAT DEFAULT 100.00, `pv2Impound` INTEGER DEFAULT 0, `pv2Plate` TEXT DEFAULT NULL, `pv2EZPass` INTEGER DEFAULT 0, `pv2TicketReason` TEXT DEFAULT NULL, 
`
pv3PosX` FLOAT DEFAULT 0.0, `pv3PosY` FLOAT DEFAULT 0.0, `pv3PosZ` FLOAT DEFAULT 0.0, `pv3PosAngle` FLOAT DEFAULT 0.0, `pv3ModelId` INTEGER DEFAULT 0, `pv3Lock` INTEGER DEFAULT 0, `pv3Locked` INTEGER DEFAULT 0, `pv3PaintJob` INTEGER DEFAULT 0, `pv3Color1` INTEGER DEFAULT 0, `pv3Color2` INTEGER DEFAULT 0, `pv3Ticket` INTEGER DEFAULT 0, 
`
pv3Fuel` FLOAT DEFAULT 100.00, `pv3Impound` INTEGER DEFAULT 0, `pv3Plate` TEXT DEFAULT NULL, `pv3EZPass` INTEGER DEFAULT 0, `pv3TicketReason` TEXT DEFAULT NULL, 
`
pv4PosX` FLOAT DEFAULT 0.0, `pv4PosY` FLOAT DEFAULT 0.0, `pv4PosZ` FLOAT DEFAULT 0.0, `pv4PosAngle` FLOAT DEFAULT 0.0, `pv4ModelId` INTEGER DEFAULT 0, `pv4Lock` INTEGER DEFAULT 0, `pv4Locked` INTEGER DEFAULT 0, `pv4PaintJob` INTEGER DEFAULT 0, `pv4Color1` INTEGER DEFAULT 0, `pv4Color2` INTEGER DEFAULT 0, `pv4Ticket` INTEGER DEFAULT 0, 
`
pv4Fuel` FLOAT DEFAULT 100.00, `pv4Impound` INTEGER DEFAULT 0, `pv4Plate` TEXT DEFAULT NULL, `pv4EZPass` INTEGER DEFAULT 0, `pv4TicketReason` TEXT DEFAULT NULL, 
`
pv5PosX` FLOAT DEFAULT 0.0, `pv5PosY` FLOAT DEFAULT 0.0, `pv5PosZ` FLOAT DEFAULT 0.0, `pv5PosAngle` FLOAT DEFAULT 0.0, `pv5ModelId` INTEGER DEFAULT 0, `pv5Lock` INTEGER DEFAULT 0, `pv5Locked` INTEGER DEFAULT 0, `pv5PaintJob` INTEGER DEFAULT 0, `pv5Color1` INTEGER DEFAULT 0, `pv5Color2` INTEGER DEFAULT 0, `pv5Ticket` INTEGER DEFAULT 0, 
`
pv5Fuel` FLOAT DEFAULT 100.00, `pv5Impound` INTEGER DEFAULT 0, `pv5Plate` TEXT DEFAULT NULL, `pv5EZPass` INTEGER DEFAULT 0, `pv5TicketReason` TEXT DEFAULT NULL, 
`
pv6PosX` FLOAT DEFAULT 0.0, `pv6PosY` FLOAT DEFAULT 0.0, `pv6PosZ` FLOAT DEFAULT 0.0, `pv6PosAngle` FLOAT DEFAULT 0.0, `pv6ModelId` INTEGER DEFAULT 0, `pv6Lock` INTEGER DEFAULT 0, `pv6Locked` INTEGER DEFAULT 0, `pv6PaintJob` INTEGER DEFAULT 0, `pv6Color1` INTEGER DEFAULT 0, `pv6Color2` INTEGER DEFAULT 0, `pv6Ticket` INTEGER DEFAULT 0, 
`
pv6Fuel` FLOAT DEFAULT 100.00, `pv6Impound` INTEGER DEFAULT 0, `pv6Plate` TEXT DEFAULT NULL, `pv6EZPass` INTEGER DEFAULT 0, `pv6TicketReason` TEXT DEFAULT NULL) 



Re: SQL Error - JaKe Elite - 25.01.2018

The error appears to come from another table, I have commented out the code for creating the player vehicle's table, I guess I will solve this out myself. Thanks for your time guys.


Re: SQL Error - Misiur - 25.01.2018

Look up "normalizing" tables, by Vince IIRC. When you start numbering fields (with a few exceptions), you are creating your structure wrong.