pub struct Connection { /* private fields */ }
Expand description
An open connection to a MySQL database.
§Examples
Load a set of rows from a local PostgreSQL database, and iterate over them.
use spin_sdk::mysql::{Connection, Decode, ParameterValue};
let db = Connection::open("mysql://root:my_password@localhost/mydb")?;
let query_result = db.query(
"SELECT * FROM users WHERE age < ?",
&[ParameterValue::Int32(20)]
)?;
let name_index = query_result.columns.iter().position(|c| c.name == "name").unwrap();
for row in &query_result.rows {
let name = String::decode(&row[name_index])?;
println!("Found user {name}");
}
Perform an aggregate (scalar) operation over a table. The result set contains a single column, with a single row.
use spin_sdk::mysql::{Connection, Decode};
let db = Connection::open("mysql://root:my_password@localhost/mydb")?;
let query_result = db.query("SELECT COUNT(*) FROM users", &[])?;
assert_eq!(1, query_result.columns.len());
assert_eq!("COUNT(*)", query_result.columns[0].name);
assert_eq!(1, query_result.rows.len());
let count = i64::decode(&query_result.rows[0][0])?;
Delete rows from a MySQL table. This uses Connection::execute()
instead of the query
method.
use spin_sdk::mysql::{Connection, ParameterValue};
let db = Connection::open("mysql://root:my_password@localhost/mydb")?;
let rows_affected = db.execute(
"DELETE FROM users WHERE name = ?",
&[ParameterValue::Str("Baldrick".to_owned())]
)?;
A connection to a MySQL database.
Implementations§
Source§impl Connection
impl Connection
Source§impl Connection
impl Connection
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Connection
impl RefUnwindSafe for Connection
impl Send for Connection
impl Sync for Connection
impl Unpin for Connection
impl UnwindSafe for Connection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more