diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-13 14:05:13 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-14 02:27:27 +0300 |
commit | ce29f168ed52f08228b99a789785271a4a3c9b0e (patch) | |
tree | acdcf09cc887bc508d8d803ad971f96e9da442be /src/ellinika/sql.scm | |
parent | bee3becef44e298f59d72cee3c8e552bccb10d65 (diff) | |
download | ellinika-ce29f168ed52f08228b99a789785271a4a3c9b0e.tar.gz ellinika-ce29f168ed52f08228b99a789785271a4a3c9b0e.tar.bz2 |
Implement escape function.
Diffstat (limited to 'src/ellinika/sql.scm')
-rw-r--r-- | src/ellinika/sql.scm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/ellinika/sql.scm b/src/ellinika/sql.scm new file mode 100644 index 0000000..c0301ad --- /dev/null +++ b/src/ellinika/sql.scm @@ -0,0 +1,33 @@ +(define-module (ellinika sql)) + +(use-modules (srfi srfi-1) + (ellinika elmorph) + (gamma sql)) + +(define ellinika:sql-verbose #f) +(define ellinika:sql-conn #f) + +(define (ellinika:sql-connect arg) + (set! ellinika:sql-conn (sql-open-connection args)) + (if ellinika:sql-conn + (sql-query ellinika:sql-conn "SET NAMES utf8")) + ellinika:sql-conn) + +(define (ellinika:sql-disconnect) + (if ellinika:sql-conn (sql-close-connection ellinika:sql-conn))) + +(define (ellinika:sql-query format . rest) + (let ((query (apply format #f + (map (lambda (arg) + (if arg + "NULL" + (utf8-escape arg))) + rest)))) + (cond + (ellinika:sql-verbose + (format #f "QUERY: ~A~%" query) + (let ((res (sql-query ellinika:sql-conn query))) + (format #f "RES: ~A~%" res) + res)) + (else + (sql-query ellinika:sql-conn query))))) |