Uuenda.py

Allikas: Lambda
#!/usr/bin/python
import sys
import cgi
import sqlite3 as sqlite

databasefile = 'data.db'
tables = ['t0','t1','t2','t3','t4']
fields = ['f0','f1','f2','f3','f4','f5','f6','f7','f8','f9','f10','f11','f12','f13','f14','f15','f16','f17','f18','f19']

print 'Content-type: text/plain'
print

try:
  form = cgi.FieldStorage()

  if form.has_key('table') and form['table'].value in tables:
    tablename=form['table'].value
  else:
    print "0"
    sys.exit(0)

  if form.has_key('salvestaja'):
    salvestaja=form['salvestaja'].value
  else:
    print "0"
    sys.exit(0)

  if form.has_key('id'):
    id=form['id'].value
  else:
    print "0"
    sys.exit(0)

  query="update %s set " % tablename

  updstr=""
  for el in fields:
    if form.has_key(el):
      updstr=updstr+" "+el+"='"
      updstr=updstr+form[el].value.replace('"', ' ').replace("'", " ")+"',"
  if not updstr:
    print "0"
  else:
    if updstr[len(updstr)-1]==",":
      updstr=updstr[0:len(updstr)-1]
    query=query+updstr+" where salvestaja='%s' and id='%s'" %  (salvestaja,id)

    #print query # uncomment for debugging

    con = sqlite.connect(databasefile)
    cur = con.cursor()
    cur.execute(query)
    con.commit()
    print "1"
except Exception, e:
  #print e # uncommment for debugging
  print "0"