0
Traceback (most recent call last):
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 2095, in __call__
    return self.wsgi_app(environ, start_response)
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 2080, in wsgi_app
    response = self.handle_exception(e)
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 2077, in wsgi_app
    response = self.full_dispatch_request()
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 1525, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 1523, in full_dispatch_request
    rv = self.dispatch_request()
  File "D:\Development\Projects\moskal-web-autoskola\venv\lib\site-packages\flask\app.py", line 1509, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "D:\Development\Projects\moskal-web-autoskola\moskal\db_view.py", line 36, in vybavit
    c.execute(f"INSERT INTO studenti (krstne_meno,priezvisko,email,telefon,datum) SELECT krstne_meno,priezvisko,email,telefon FROM uchadzaci, {curr_time} WHERE id = {id}")
sqlite3.OperationalError: near "09": syntax error

I just want to insert some data and current time of execution to db. It works without adding variable of time. Btw 'datum' means date.

def vybavit(id):
    db = get_db()
    c = db.cursor()
    curr_time = time.strftime("%H:%M:%S")
    try:
        c.execute(f"INSERT INTO studenti (krstne_meno,priezvisko,email,telefon,datum) SELECT krstne_meno,priezvisko,email,telefon FROM uchadzaci, {curr_time} WHERE id = {id}")
        c.execute("SELECT krstne_meno, priezvisko FROM uchadzaci WHERE id = %s" % id)
        meno = c.fetchone()
        flash('Uchadzač %s bol priradený do databázy študentov.' % meno )
    except sqlite3.IntegrityError:
        print('Uz je studentom')

    c.execute("DELETE FROM uchadzaci WHERE id = %s" % id)
    db.commit()
    return redirect(url_for('db_view.uchadzaci'))

enter image description here

katpil320
  • 1
  • 1
  • 2
    Don't use string formatting to interpolate values into SQL statements: use parameter substitution as show in the answers to the linked duplicate Q&A. In this case, `curr_time` is not properly quoted and this causes the syntax error. – snakecharmerb Apr 16 '22 at 08:08
  • 1
    As you are using SQLite, [this answer](https://stackoverflow.com/a/902836/5320906) shows the correct placeholder. – snakecharmerb Apr 16 '22 at 08:09

0 Answers0