ExecuteSQLSelect: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Changed "DeprecatedWithAlt" template to "Deprecated") |
||
(23 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{Server function}} | |||
{{Deprecated|executeSQLQuery|See the examples at executeSQLQuery for equivalent SELECT usage.}} | |||
This function retrieves rows from a table in the database, if they exist. If you pass the table name, along with the columns you want to retrieve (and any conditions for the row) this function will return a table containing the corresponding values. | |||
The | The SQLite database contains globally stored data and can be used by scripts to store and retrieve data in a structured manner. | ||
<syntaxhighlight lang="lua">SELECT <fields> FROM <tables> WHERE <conditions> LIMIT <limit></syntaxhighlight> | The executed SQL query is the following: | ||
<syntaxhighlight lang="lua">[sql]SELECT <fields> FROM <tables> WHERE <conditions> LIMIT <limit></syntaxhighlight> | |||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
table executeSQLSelect ( string tableName, string fields, [ string conditions, int limit ] ) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
*''' | *'''tableName:''' The table you want to query. No spaces allowed. | ||
*''' | *'''fields:''' The fields you want to query. No spaces allowed. Multiple fields should be separated by a comma (,). Wildcard (*) allowed to query all fields in the table. If you use wildcards, please pay attention to the order in which you'll have to retrieve your values from the table. | ||
===Optional Arguments=== | ===Optional Arguments=== | ||
Line 23: | Line 25: | ||
===Returns=== | ===Returns=== | ||
Returns the | Returns a 2-dimensional table where the results are stored as table [row_index] [column_name]. Please note that table may be empty. | ||
==Example== | If invalid arguments were passed, returns ''false''. | ||
This example | |||
==Example== | |||
This example creates a SQL table when a map loads, and stores info about a player to that database when he spawns. | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
-- | function onMapLoad () | ||
addEventHandler ( " | -- create our table, if it doesn't already exist | ||
function | executeSQLCreateTable ( "players", "clothes_head_texture TEXT, clothes_head_model TEXT, player TEXT" ) | ||
end | |||
addEventHandler ( "onGamemodeMapStart", getRootElement(), onMapLoad ) | |||
function addInfoToSQL( theSpawnpoint, theTeam ) | |||
sourcename = getPlayerName ( source ) -- get the player's name | |||
-- try to retrieve the player data from the db | |||
result = executeSQLSelect ( "players", "player", "player = '" .. sourcename .. "'" ) | |||
if ( type( result ) == "table" and #result == 0 ) or not result then -- see if any data was found at all | |||
outputChatBox ( "This is your first time here! Welcome " .. sourcename .. "!", source ) | |||
executeSQLInsert ( "players", "'none', 'none', '" .. sourcename .. "'" ) | |||
else | |||
outputChatBox ( "Welcome back " .. sourcename .. "!", source ) | |||
executeSQLUpdate ( "players", "clothes_head_texture = 'hairgreen', clothes_head_model = 'somehead'", | |||
"player = '" .. sourcename .. "'" ) | |||
end | |||
-- get the clothes data for the player | |||
result = executeSQLSelect ( "players", "clothes_head_texture, clothes_head_model", "player = '" .. sourcename .. "'" ) | |||
outputChatBox ( "Your head texture is " .. result[1].clothes_head_texture ) | |||
outputChatBox ( "Your head model is " .. result[1]['clothes_head_model'] ) | |||
end | end | ||
addEventHandler ( "onPlayerSpawn", getRootElement(), addInfoToSQL ) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==See Also== | ==See Also== | ||
{{Registry_functions}} | {{Registry_functions}} | ||
[[ru:executeSQLSelect]] |
Latest revision as of 16:20, 13 February 2015
This function is deprecated. This means that its use is discouraged and that it might not exist in future versions. | |
Please use executeSQLQuery instead. See the examples at executeSQLQuery for equivalent SELECT usage. |
This function retrieves rows from a table in the database, if they exist. If you pass the table name, along with the columns you want to retrieve (and any conditions for the row) this function will return a table containing the corresponding values.
The SQLite database contains globally stored data and can be used by scripts to store and retrieve data in a structured manner.
The executed SQL query is the following:
[sql]SELECT <fields> FROM <tables> WHERE <conditions> LIMIT <limit>
Syntax
table executeSQLSelect ( string tableName, string fields, [ string conditions, int limit ] )
Required Arguments
- tableName: The table you want to query. No spaces allowed.
- fields: The fields you want to query. No spaces allowed. Multiple fields should be separated by a comma (,). Wildcard (*) allowed to query all fields in the table. If you use wildcards, please pay attention to the order in which you'll have to retrieve your values from the table.
Optional Arguments
- conditions: The conditions for the query. Multiple conditions should be separated by logical operators (AND, OR).
- limit: Maximum amount of rows to return.
Returns
Returns a 2-dimensional table where the results are stored as table [row_index] [column_name]. Please note that table may be empty.
If invalid arguments were passed, returns false.
Example
This example creates a SQL table when a map loads, and stores info about a player to that database when he spawns.
function onMapLoad () -- create our table, if it doesn't already exist executeSQLCreateTable ( "players", "clothes_head_texture TEXT, clothes_head_model TEXT, player TEXT" ) end addEventHandler ( "onGamemodeMapStart", getRootElement(), onMapLoad ) function addInfoToSQL( theSpawnpoint, theTeam ) sourcename = getPlayerName ( source ) -- get the player's name -- try to retrieve the player data from the db result = executeSQLSelect ( "players", "player", "player = '" .. sourcename .. "'" ) if ( type( result ) == "table" and #result == 0 ) or not result then -- see if any data was found at all outputChatBox ( "This is your first time here! Welcome " .. sourcename .. "!", source ) executeSQLInsert ( "players", "'none', 'none', '" .. sourcename .. "'" ) else outputChatBox ( "Welcome back " .. sourcename .. "!", source ) executeSQLUpdate ( "players", "clothes_head_texture = 'hairgreen', clothes_head_model = 'somehead'", "player = '" .. sourcename .. "'" ) end -- get the clothes data for the player result = executeSQLSelect ( "players", "clothes_head_texture, clothes_head_model", "player = '" .. sourcename .. "'" ) outputChatBox ( "Your head texture is " .. result[1].clothes_head_texture ) outputChatBox ( "Your head model is " .. result[1]['clothes_head_model'] ) end addEventHandler ( "onPlayerSpawn", getRootElement(), addInfoToSQL )