Skip to main content

db_get_field_int

คำอธิบาย​

Get the content of a field as an integer from db_query

NameDescription
DBResult:dbresultThe result to get the data from.
field = 0The field to get the data from.

ส่งคืน​

Retrieved value as integer (number).

ตัวอย่าง​

// examples.inc

// ...

static FindFieldIndexByName(DBResult:dbResultSet, const fieldName[])
{
// Return value variable with default return value
new ret = -1;

// Field count
new field_count = db_num_fields(dbResultSet);

// Current field name
new current_field_name[32];

// Iterate through all fields
for (new field_index; field_index < field_count; field_index++)
{
// Get field name
if (db_field_name(dbResultSet, field_index, current_field_name, sizeof current_field_name))
{
// Compare searched field name to current field name
if (!strcmp(fieldName, current_field_name))
{
// Success, store field index to return value variable
ret = field_index;

// Break out of the loop
break;
}
}
}

// Return found field index or "-1"
return ret;
}

Examples_CalculateSum(DB:dbConnectionHandle)
{
// Return value variable
new ret;

// Database result set
new DBResult:db_result_set = db_query("SELECT `value` FROM `examples`");

// If database result set is valid
if (db_result_set)
{
// Get target field index
new target_field_index = FindFieldIndexByName(db_result_set, "value");

// Check if field index is valid
if (target_field_index >= 0)
{
// Do operations
do
{
// Add value from "example" field to the return value variable
ret += db_get_field_int(db_result_set, target_field_index);
}

// While next row could be fetched
while (db_next_row(db_result_set));
}

// Free result set
db_free_result(db_result_set);
}

// Return calculated sum
return ret;
}
// mode.pwn

// ...

#include <examples>

static DB:gDBConnectionHandle;

// ...

public OnGameModeInit()
{
// ...

// Create a connection to a database
gDBConnectionHandle = db_open("example.db");

// If connection to the database exists
if (gDBConnectionHandle)
{
// Successfully created a connection to the database
print("Successfully created a connection to database \"example.db\".");
printf("Calculated sum: %d", Examples_CalculateSum(gDBConnectionHandle));
}
else
{
// Failed to create a connection to the database
print("Failed to open a connection to database \"example.db\".");
}

// ...

return 1;
}

public OnGameModeExit()
{
// Close the connection to the database if connection is open
if (db_close(gDBConnectionHandle))
{
// Extra cleanup
gDBConnectionHandle = DB:0;
}

// ...

return 1;
}

บันทึก​

warning

Using an invalid handle will crash your server! Get a valid handle by using db_query. But it's protected against NULL references.

ฟังก์ชั่นที่เกี่ยวข้องกัน​

  • db_open: Open a connection to an SQLite database
  • db_close: Close the connection to an SQLite database
  • db_query: Query an SQLite database
  • db_free_result: Free result memory from a db_query
  • db_num_rows: Get the number of rows in a result
  • db_next_row: Move to the next row
  • db_num_fields: Get the number of fields in a result
  • db_field_name: Returns the name of a field at a particular index
  • db_get_field: Get content of field with specified ID from current result row
  • db_get_field_assoc: Get content of field with specified name from current result row
  • db_get_field_int: Get content of field as an integer with specified ID from current result row
  • db_get_field_assoc_int: Get content of field as an integer with specified name from current result row
  • db_get_field_float: Get content of field as a float with specified ID from current result row
  • db_get_field_assoc_float: Get content of field as a float with specified name from current result row
  • db_get_mem_handle: Get memory handle for an SQLite database that was opened with db_open.
  • db_get_result_mem_handle: Get memory handle for an SQLite query that was executed with db_query.
  • db_debug_openfiles
  • db_debug_openresults