Struct mysql::conn::QueryResult
[−]
[src]
pub struct QueryResult<'a> {
// some fields omitted
}Mysql result set for text and binary protocols.
If you want to get rows from QueryResult you should rely on implementation
of Iterator over MyResult<Vec<Value>> on QueryResult.
Vec<Value> is the current row representation. To get something useful from Vec<Value> you
should rely on FromRow trait implemented for tuples of FromValue implementors up to arity
12, or on FromValue trait for rows with bigger arity.
use mysql::value::from_row; let mut conn = pool.get_conn().unwrap(); for row in conn.prep_exec("SELECT ?, ?", (42, 2.5)).unwrap() { let (a, b) = from_row(row.unwrap()); assert_eq!((a, b), (42u8, 2.5_f32)); }
For more info on how to work with values please look at
Value documentation.
Methods
impl<'a> QueryResult<'a>
fn affected_rows(&self) -> u64
Returns
OkPacket's
affected rows.
fn last_insert_id(&self) -> u64
Returns
OkPacket's
last insert id.
fn warnings(&self) -> u16
Returns
OkPacket's
warnings count.
fn info(&self) -> Vec<u8>
Returns
OkPacket's
info.
fn column_index<T: AsRef<str>>(&self, name: T) -> Option<usize>
Returns index of a QueryResult's column by name.
fn columns_ref(&self) -> &[Column]
Returns a slice of a Columns which represents
QueryResult's columns if any.
fn more_results_exists(&self) -> bool
This predicate will help you if you are expecting multiple result sets.
For example:
conn.query(r#" CREATE PROCEDURE multi() BEGIN SELECT 1; SELECT 2; END "#); let mut result = conn.query("CALL multi()").unwrap(); while result.more_results_exists() { for x in result.by_ref() { // On first iteration of `while` you will get result set from // SELECT 1 and from SELECT 2 on second. } }