Copyright | (c) 2011 MailRank Inc. |
---|---|
License | BSD3 |
Maintainer | Paul Rouse <pyr@doynton.org> |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Basic types.
Documentation
A placeholder for the SQL NULL
value.
A single-value "collection".
This is useful if you need to supply a single parameter to a SQL query, or extract a single column from a SQL result.
Parameter example:
query c "select x from scores where x > ?" (Only
(42::Int))
Result example:
xs <- query_ c "select id from users"
forM_ xs $ \(Only
id) -> {- ... -}
Instances
Functor Only Source # | |
Read a => Read (Only a) Source # | |
Show a => Show (Only a) Source # | |
Eq a => Eq (Only a) Source # | |
Ord a => Ord (Only a) Source # | |
Param a => QueryParams (Only a) Source # | |
Defined in Database.MySQL.Simple.QueryParams renderParams :: Only a -> [Action] Source # | |
Result a => QueryResults (Only a) Source # | |
Defined in Database.MySQL.Simple.QueryResults convertResults :: [Field] -> [Maybe ByteString] -> Only a Source # |
Wrap a list of values for use in an IN
clause. Replaces a
single "?
" character with a parenthesized list of rendered
values.
Example:
query c "select * from whatever where id in ?" (Only (In [3,4,5]))
In a |
Wrap a list of values for use in a function with variable arguments.
Replaces a single "?
" character with a non-parenthesized list of
rendered values.
Example:
query conn "SELECT * FROM example_table ORDER BY field(f,?)" (Only (VaArgs [3,2,1]))
VaArgs a |
Wrap a mostly-binary string to be escaped in hexadecimal.
Binary a |
Instances
Functor Binary Source # | |
Read a => Read (Binary a) Source # | |
Show a => Show (Binary a) Source # | |
Eq a => Eq (Binary a) Source # | |
Ord a => Ord (Binary a) Source # | |
Defined in Database.MySQL.Simple.Types | |
Param (Binary ByteString) Source # | |
Defined in Database.MySQL.Simple.Param | |
Param (Binary ByteString) Source # | |
Defined in Database.MySQL.Simple.Param |
A query string. This type is intended to make it difficult to construct a SQL query by concatenating string fragments, as that is an extremely common way to accidentally introduce SQL injection vulnerabilities into an application.
This type is an instance of IsString
, so the easiest way to
construct a query is to enable the OverloadedStrings
language
extension and then simply write the query in double quotes.
{-# LANGUAGE OverloadedStrings #-} import Database.MySQL.Simple q :: Query q = "select ?"
The underlying type is a ByteString
, and literal Haskell strings
that contain Unicode characters will be correctly transformed to
UTF-8.