11
2-
32fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
43 // Get input from CLI
54 let args: Vec < String > = std:: env:: args ( ) . collect ( ) ;
@@ -18,19 +17,22 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
1817 ) ?;
1918
2019 let query = format ! ( "INSERT INTO person (name, age) VALUES ('{}', '{}')" , name, age) ;
20+ let query2 = "INSERT INTO person (id) VALUES ($1)" ;
2121
2222 conn. execute ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
2323 conn. batch_execute ( query. as_str ( ) ) ?; // $ sql-sink
2424
2525 conn. prepare ( query. as_str ( ) ) ?; // $ sql-sink
26- // conn.prepare_typed(query.as_str() , &[])?;
26+ conn. prepare_typed ( query2 , & [ postgres :: types :: Type :: INT4 ] ) ?; // $ sql-sink
2727
2828 conn. query ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
2929 conn. query_one ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
3030 conn. query_opt ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
31- // conn.query_raw(query.as_str(), &[])?;
32- // conn.query_typed(query.as_str(), &[])?;
33- // conn.query_typed_raw(query.as_str(), &[])?;
31+ let params: Vec < i32 > = vec ! [ 0 ] ;
32+ conn. query_raw ( query. as_str ( ) , params) ?; // $ sql-sink
33+ conn. query_typed ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
34+ let params: Vec < ( i32 , postgres:: types:: Type ) > = vec ! [ ( 0 , postgres:: types:: Type :: INT4 ) ] ;
35+ conn. query_typed_raw ( query2, params) ?; // $ sql-sink
3436
3537 for row in & conn. query ( "SELECT id, name, age FROM person" , & [ ] ) ? { // $ sql-sink
3638 let id: i32 = row. get ( "id" ) ; // $ database-read
@@ -39,5 +41,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
3941 println ! ( "found person: {} {} {}" , id, name, age) ;
4042 }
4143
44+ for message in & conn. simple_query ( "SELECT id, name, age FROM person" ) ? { // $ sql-sink
45+ if let postgres:: SimpleQueryMessage :: Row ( row) = message {
46+ let id: i32 = row. get ( 0 ) . unwrap ( ) . parse ( ) . unwrap ( ) ; // $ database-read
47+ let name: & str = row. get ( 1 ) . unwrap ( ) ; // $ database-read
48+ let age: i32 = row. get ( 2 ) . unwrap ( ) . parse ( ) . unwrap ( ) ; // $ database-read
49+ println ! ( "found person: {} {} {}" , id, name, age) ;
50+ }
51+ }
52+
4253 Ok ( ( ) )
4354}
0 commit comments