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 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. } }