db.query
Other languages: 简体中文
Problem
You want to perform advanced SQL statements like joins or counts.
Solution
webpy doesn’t try to build layers between you and your database. Rather, it tries to make it easy to perform common tasks, and get out of your way when you need to do more advanced things. Performing advanced database queries is no different. For example:
import web
db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='')
results = db.query("SELECT COUNT(*) AS total_users FROM users")
print results[0].total_users # -> prints number of entries in 'users' table
or, for a JOIN example:
results = db.query("SELECT * FROM entries JOIN users WHERE entries.author_id = users.id")
To prevent SQL injection attacks, db.query
also accepts the vars
syntax as
described in db.select:
results = db.query("SELECT * FROM users WHERE id=$id", vars={'id':10})
This will escape user input, if you’re trusting them for the id
variable.