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.
let mut conn = pool.get_conn().unwrap(); for row in conn.prep_exec("SELECT ?", (42,)).unwrap() { assert_eq!(row.unwrap(), vec![Value::Int(42)]); }
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 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. } }