Struct mysql::PooledConn 
source · pub struct PooledConn { /* private fields */ }Expand description
Pooled mysql connection which will return to the pool on drop.
You should prefer using prep along exec instead of query from the Queryable trait where
possible, except cases when statement has no params and when it has no return values or return
values which evaluates to Value::Bytes.
query is a part of mysql text protocol, so under the hood you will always receive
Value::Bytes as a result and from_value will need to parse it if you want, for example, i64
let pool = Pool::new(get_opts()).unwrap();
let mut conn = pool.get_conn().unwrap();
conn.query_first("SELECT 42").map(|result: Option<Value>| {
    let result = result.unwrap();
    assert_eq!(result, Value::Bytes(b"42".to_vec()));
    assert_eq!(from_value::<i64>(result), 42i64);
}).unwrap();
conn.exec_iter("SELECT 42", ()).map(|mut result| {
    let cell = result.next().unwrap().unwrap().take(0).unwrap();
    assert_eq!(cell, Value::Int(42i64));
    assert_eq!(from_value::<i64>(cell), 42i64);
}).unwrap();For more info on how to work with query results please look at
QueryResult documentation.
Implementations§
source§impl PooledConn
 
impl PooledConn
sourcepub fn start_transaction(&mut self, tx_opts: TxOpts) -> Result<Transaction<'_>>
 
pub fn start_transaction(&mut self, tx_opts: TxOpts) -> Result<Transaction<'_>>
Redirects to
Conn#start_transaction
sourcepub fn get_binlog_stream(
    self,
    request: BinlogRequest<'_>
) -> Result<BinlogStream>
 
pub fn get_binlog_stream(
    self,
    request: BinlogRequest<'_>
) -> Result<BinlogStream>
Turns this connection into a binlog stream (see Conn::get_binlog_stream).
sourcepub fn set_local_infile_handler(&mut self, handler: Option<LocalInfileHandler>)
 
pub fn set_local_infile_handler(&mut self, handler: Option<LocalInfileHandler>)
A way to override default local infile handler for this pooled connection. Destructor will
restore original handler before returning connection to a pool.
See Conn::set_local_infile_handler.
Methods from Deref<Target = Conn>§
sourcepub fn server_version(&self) -> (u16, u16, u16)
 
pub fn server_version(&self) -> (u16, u16, u16)
Returns version number reported by the server.
sourcepub fn connection_id(&self) -> u32
 
pub fn connection_id(&self) -> u32
Returns connection identifier.
sourcepub fn affected_rows(&self) -> u64
 
pub fn affected_rows(&self) -> u64
Returns number of rows affected by the last query.
sourcepub fn last_insert_id(&self) -> u64
 
pub fn last_insert_id(&self) -> u64
Returns last insert id of the last query.
Returns zero if there was no last insert id.
sourcepub fn info_str(&self) -> Cow<'_, str>
 
pub fn info_str(&self) -> Cow<'_, str>
Info, reported by the server.
Will be empty if not defined.
pub fn session_state_changes(&self) -> Result<Vec<SessionStateInfo<'_>>>
pub fn no_backslash_escape(&self) -> bool
Trait Implementations§
source§impl Debug for PooledConn
 
impl Debug for PooledConn
source§impl Deref for PooledConn
 
impl Deref for PooledConn
source§impl Drop for PooledConn
 
impl Drop for PooledConn
source§impl Queryable for PooledConn
 
impl Queryable for PooledConn
source§fn query_iter<T: AsRef<str>>(
    &mut self,
    query: T
) -> Result<QueryResult<'_, '_, '_, Text>>
 
fn query_iter<T: AsRef<str>>(
    &mut self,
    query: T
) -> Result<QueryResult<'_, '_, '_, Text>>
source§fn prep<T: AsRef<str>>(&mut self, query: T) -> Result<Statement>
 
fn prep<T: AsRef<str>>(&mut self, query: T) -> Result<Statement>
query as a prepared statement.source§fn close(&mut self, stmt: Statement) -> Result<()>
 
fn close(&mut self, stmt: Statement) -> Result<()>
source§fn exec_iter<S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<QueryResult<'_, '_, '_, Binary>>where
    S: AsStatement,
    P: Into<Params>,
 
fn exec_iter<S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<QueryResult<'_, '_, '_, Binary>>where
    S: AsStatement,
    P: Into<Params>,
stmt with the given params.source§fn query<T, Q>(&mut self, query: Q) -> Result<Vec<T>>where
    Q: AsRef<str>,
    T: FromRow,
 
fn query<T, Q>(&mut self, query: Q) -> Result<Vec<T>>where
    Q: AsRef<str>,
    T: FromRow,
source§fn query_opt<T, Q>(
    &mut self,
    query: Q
) -> Result<Vec<StdResult<T, FromRowError>>>where
    Q: AsRef<str>,
    T: FromRow,
 
fn query_opt<T, Q>(
    &mut self,
    query: Q
) -> Result<Vec<StdResult<T, FromRowError>>>where
    Q: AsRef<str>,
    T: FromRow,
Queryable::query but useful when you not sure what your schema is.source§fn query_first<T, Q>(&mut self, query: Q) -> Result<Option<T>>where
    Q: AsRef<str>,
    T: FromRow,
 
fn query_first<T, Q>(&mut self, query: Q) -> Result<Option<T>>where
    Q: AsRef<str>,
    T: FromRow,
source§fn query_first_opt<T, Q>(
    &mut self,
    query: Q
) -> Result<Option<StdResult<T, FromRowError>>>where
    Q: AsRef<str>,
    T: FromRow,
 
fn query_first_opt<T, Q>(
    &mut self,
    query: Q
) -> Result<Option<StdResult<T, FromRowError>>>where
    Q: AsRef<str>,
    T: FromRow,
Queryable::query_first but useful when you not sure what your schema is.source§fn query_map<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(T) -> U,
 
fn query_map<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(T) -> U,
source§fn query_map_opt<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(StdResult<T, FromRowError>) -> U,
 
fn query_map_opt<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(StdResult<T, FromRowError>) -> U,
Queryable::query_map but useful when you not sure what your schema is.source§fn query_fold<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(U, T) -> U,
 
fn query_fold<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(U, T) -> U,
source§fn query_fold_opt<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(U, StdResult<T, FromRowError>) -> U,
 
fn query_fold_opt<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
    Q: AsRef<str>,
    T: FromRow,
    F: FnMut(U, StdResult<T, FromRowError>) -> U,
Queryable::query_fold but useful when you not sure what your schema is.source§fn query_drop<Q>(&mut self, query: Q) -> Result<()>where
    Q: AsRef<str>,
 
fn query_drop<Q>(&mut self, query: Q) -> Result<()>where
    Q: AsRef<str>,
source§fn exec_batch<S, P, I>(&mut self, stmt: S, params: I) -> Result<()>where
    Self: Sized,
    S: AsStatement,
    P: Into<Params>,
    I: IntoIterator<Item = P>,
 
fn exec_batch<S, P, I>(&mut self, stmt: S, params: I) -> Result<()>where
    Self: Sized,
    S: AsStatement,
    P: Into<Params>,
    I: IntoIterator<Item = P>,
source§fn exec<T, S, P>(&mut self, stmt: S, params: P) -> Result<Vec<T>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
 
fn exec<T, S, P>(&mut self, stmt: S, params: P) -> Result<Vec<T>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
stmt and collects the first result set.source§fn exec_opt<T, S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<Vec<StdResult<T, FromRowError>>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
 
fn exec_opt<T, S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<Vec<StdResult<T, FromRowError>>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
Queryable::exec but useful when you not sure what your schema is.source§fn exec_first<T, S, P>(&mut self, stmt: S, params: P) -> Result<Option<T>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
 
fn exec_first<T, S, P>(&mut self, stmt: S, params: P) -> Result<Option<T>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
stmt and returns the first row of the first result set.source§fn exec_first_opt<T, S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<Option<StdResult<T, FromRowError>>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
 
fn exec_first_opt<T, S, P>(
    &mut self,
    stmt: S,
    params: P
) -> Result<Option<StdResult<T, FromRowError>>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
Queryable::exec_first but useful when you not sure what your schema is.source§fn exec_map<T, S, P, F, U>(&mut self, stmt: S, params: P, f: F) -> Result<Vec<U>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(T) -> U,
 
fn exec_map<T, S, P, F, U>(&mut self, stmt: S, params: P, f: F) -> Result<Vec<U>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(T) -> U,
stmt and maps each row of the first result set.source§fn exec_map_opt<T, S, P, F, U>(
    &mut self,
    stmt: S,
    params: P,
    f: F
) -> Result<Vec<U>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(StdResult<T, FromRowError>) -> U,
 
fn exec_map_opt<T, S, P, F, U>(
    &mut self,
    stmt: S,
    params: P,
    f: F
) -> Result<Vec<U>>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(StdResult<T, FromRowError>) -> U,
Queryable::exec_map but useful when you not sure what your schema is.source§fn exec_fold<T, S, P, U, F>(
    &mut self,
    stmt: S,
    params: P,
    init: U,
    f: F
) -> Result<U>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(U, T) -> U,
 
fn exec_fold<T, S, P, U, F>(
    &mut self,
    stmt: S,
    params: P,
    init: U,
    f: F
) -> Result<U>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(U, T) -> U,
stmt and folds the first result set to a signel value.source§fn exec_fold_opt<T, S, P, U, F>(
    &mut self,
    stmt: S,
    params: P,
    init: U,
    f: F
) -> Result<U>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(U, StdResult<T, FromRowError>) -> U,
 
fn exec_fold_opt<T, S, P, U, F>(
    &mut self,
    stmt: S,
    params: P,
    init: U,
    f: F
) -> Result<U>where
    S: AsStatement,
    P: Into<Params>,
    T: FromRow,
    F: FnMut(U, StdResult<T, FromRowError>) -> U,
Queryable::exec_fold but useful when you not sure what your schema is.Auto Trait Implementations§
impl RefUnwindSafe for PooledConn
impl Send for PooledConn
impl Sync for PooledConn
impl Unpin for PooledConn
impl UnwindSafe for PooledConn
Blanket Implementations§
§impl<T> Conv for T
 
impl<T> Conv for T
§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
 
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
§impl<T> FmtForward for T
 
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
 
fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
§impl<T, U, I> LiftInto<U, I> for Twhere
    U: LiftFrom<T, I>,
 
impl<T, U, I> LiftInto<U, I> for Twhere
    U: LiftFrom<T, I>,
§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
self, then passes self.as_mut() into the pipe
function.§impl<T> Pointable for T
 
impl<T> Pointable for T
§impl<Source> Sculptor<HNil, HNil> for Source
 
impl<Source> Sculptor<HNil, HNil> for Source
§impl<T> Tap for T
 
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
.tap_ref_mut() only in debug builds, and is erased in release
builds.