<p>I keep hearing that Lisp is a really productive language, and I'm enjoying <a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/" rel="noreferrer">SICP</a>.  Still, I'm missing something useful that would let me replace PHP for server-side database interaction in web applications.</p>

<p>Is there something like PHP's <a href="http://us2.php.net/manual/en/book.pdo.php" rel="noreferrer">PDO</a> library for Lisp or Arc or Scheme or one of the dialects?</p>

[{'answer_id': 65000, 'author': 'Ali', 'author_id': 8689, 'author_profile': 'https://Stackoverflow.com/users/8689', 'pm_score': 1, 'selected': False, 'text': '<p>Cliki is a good resource for Common Lisp libraries:\n<a href="http://www.cliki.net/database" rel="nofollow noreferrer">http://www.cliki.net/database</a></p>\n\n<p>There is a project named Elephant (<a href="http://common-lisp.net/project/elephant/index.html" rel="nofollow noreferrer">http://common-lisp.net/project/elephant/index.html</a>), which is an abstraction for object persistence in CL.</p>\n'}, {'answer_id': 65100, 'author': 'Jeremy Weathers', 'author_id': 8794, 'author_profile': 'https://Stackoverflow.com/users/8794', 'pm_score': 2, 'selected': False, 'text': '<p>newLISP - <a href="http://www.newlisp.org/" rel="nofollow noreferrer">http://www.newlisp.org/</a> - has support for MySQL, but I haven\'t used it (newLISP).</p>\n'}, {'answer_id': 66881, 'author': 'John McAleely', 'author_id': 10019, 'author_profile': 'https://Stackoverflow.com/users/10019', 'pm_score': 2, 'selected': False, 'text': "<p>If you're happy with SQL as part of your life, CL-SQL provides a mapping into CLOS objects. It appears to be more mature than Elephant.</p>\n\n<p>I'm using it on my own website.</p>\n"}, {'answer_id': 77454, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>We use SBCL, UCW, CL-SQL and MySQL as our back-end for <a href="http://paragent.com" rel="nofollow noreferrer">Paragent.com</a>. It has worked very well for us. We also have a number of clients using UCW/CL-SQL/MySQL for custom sites we have built them through our consulting arm <a href="http://bitfauna.com" rel="nofollow noreferrer">Bitfauna</a>.</p>\n'}, {'answer_id': 77554, 'author': 'barce', 'author_id': 13518, 'author_profile': 'https://Stackoverflow.com/users/13518', 'pm_score': 3, 'selected': True, 'text': '<p>newLisp has support for mysql5 and if you look at <a href="http://www.newlisp.org/code/modules/mysql5.lsp.html" rel="nofollow noreferrer">the mysql5 function calls</a>, you\'ll see that it\'s close to PDO.</p>\n'}, {'answer_id': 77667, 'author': 'Mike H', 'author_id': 13858, 'author_profile': 'https://Stackoverflow.com/users/13858', 'pm_score': 2, 'selected': False, 'text': '<p>I\'ve had good success with SBCL and CL-SQL.  CL-SQL has a object mapping API, but I used the plain SQL API which simply returns lists and this worked well enough.  And in the Clojure language, you interact with JDBC through a maps or structs {:col1 "a", :col2 "b"}, so a generated class library doesn\'t get you any simpler code, the language handles it nicely.  In my experience, there is less cruft between lisp and sql than between more static languages and sql.</p>\n'}, {'answer_id': 78735, 'author': 'Attila Lendvai', 'author_id': 14464, 'author_profile': 'https://Stackoverflow.com/users/14464', 'pm_score': 2, 'selected': False, 'text': '<p>our Common Lisp ORM solution is <a href="http://common-lisp.net/project/cl-perec/" rel="nofollow noreferrer">http://common-lisp.net/project/cl-perec/</a></p>\n\n<p>the underlying SQL lib is <a href="http://common-lisp.net/project/cl-rdbms/" rel="nofollow noreferrer">http://common-lisp.net/project/cl-rdbms/</a> (fully tested with PostgreSQL, has a toy SQlite backend and a somewhat tested Oracle backend)</p>\n\n<p>we started out using CLSQL, but after some struggle we decided to roll our own.</p>\n\n<p>these libs and PostgreSQL are used in a clustered web application developed for the Hungarian government for planning the budget of the municipalities. it has about 4000 users, 500 at peek time. a little more info is available at <a href="http://common-lisp.net/project/cl-dwim/" rel="nofollow noreferrer">http://common-lisp.net/project/cl-dwim/</a></p>\n'}, {'answer_id': 79851, 'author': 'Chris', 'author_id': 448858, 'author_profile': 'https://Stackoverflow.com/users/448858', 'pm_score': 2, 'selected': False, 'text': '<p>Since nobody has mentioned it, you can try <a href="http://common-lisp.net/project/postmodern/" rel="nofollow noreferrer">Postmodern</a>, which is an interface to PostgreSQL. It aims for a tighter integration with PostgreSQL and so doesn\'t pretend to portability between databases.</p>\n\n<p>I\'ve put it together with <a href="http://www.weitz.de/hunchentoot/" rel="nofollow noreferrer">hunchentoot</a> and <a href="http://weitz.de/cl-who/" rel="nofollow noreferrer">cl-who</a> and built a pretty nice website.</p>\n'}, {'answer_id': 100987, 'author': 'Nowhere man', 'author_id': 400277, 'author_profile': 'https://Stackoverflow.com/users/400277', 'pm_score': 1, 'selected': False, 'text': '<p>As long as you\'re switching your Webapp on Lisp, consider using persistence: you now have a constantly running Lisp image that holds everything about your application. I personnally used <a href="http://www.common-lisp.net/project/elephant" rel="nofollow noreferrer">Elephant</a> for that.</p>\n\n<p>Elephant can use CL-SQL or BDB as it\'s backend, which means that you can use MySQL if you have one running. I found using SQLite really practical, though.</p>\n'}]
['https://Stackoverflow.com/questions/64953', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/8995/']