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<Row>
on QueryResult
.
Row
is the current row representation. To get something useful from
Row
you should rely on FromRow
trait implemented for tuples of
FromValue
implementors up to arity 12, or on FromValue
trait for rows with higher 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 column_indexes<'b, 'c>(&'b self) -> HashMap<String, usize, BldHshrDflt<FnvHasher>>
Returns HashMap which maps column names to column indexes.
fn columns_ref(&self) -> &[Column]
Returns a slice of a Column
s 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. } }