queryValue

Execute an SQL SELECT command or prepared statement and return a single value: the first column of the first row received.

If the query did not produce any rows, or the rows it produced have zero columns, this will return Nullable!Variant(), ie, null. Test for this with result.isNull.

If the query DID produce a result, but the value actually received is NULL, then result.isNull will be FALSE, and result.get will produce a Variant which CONTAINS null. Check for this with result.get.type == typeid(typeof(null)).

If the SQL command does not produce a result set (such as INSERT/CREATE/etc), then mysql.exceptions.MYXNoResultRecieved will be thrown. Use exec instead for such commands.

Only use the string sql overload when you are not going to be using the same command repeatedly and you are CERTAIN all the data you're sending is properly escaped. Otherwise, consider using overload that takes a Prepared.

If there are long data items among the expected result columns you can use the csa param to specify that they are to be subject to chunked transfer via a delegate.

More...

Parameters

conn Connection

An open mysql.connection.Connection to the database.

sql string

The SQL command to be run.

csa ColumnSpecialization[]

An optional array of ColumnSpecialization structs.

Return Value

Type: Nullable!Variant

Nullable!Variant: This will be null (check via Nullable.isNull) if the query resulted in an empty result set.

Detailed Description

Type Mappings

$(TYPE_MAPPINGS)

Meta