あなたは位置パラメータでプリペアドステートメントを使用する必要があります:テーブル名にパラメータを作るに関しては
c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES (?, ?)", ('John', '2017-09-09'))
が、これもプリペアドステートメントから、ことはできません。一般に、ほとんどのクエリは別のテーブルでは実行されません。このようにテーブル名を変更できるようにすると、セキュリティリスクが発生する可能性があります。 2つの異なるテーブルを照会する必要がある場合は、それらのテーブルに対して2つの準備済みステートメントを作成します。ところで
は、あなたがトップ1が動作することを言った:
実際
c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES ('PHILZEEY', '08-09-17')")
、これはを実行するかもしれないが、それはほぼ確実にあなたのSQLiteデータベースに挿入したい日付データではありません。日付は通常のテキストとして保存されます。ほとんどの場合、年と月、日が続くISO形式で格納する必要があります。たとえば、日付リテラルとして'2017-09-08'
を使用できますが、'08-09-17'
は使用しないでください。
私は下の方をしたい理由は、私はいくつかの議論を変えていくつもりだからです。私はそれらをトップのように一定にすることはできません。 – Philzeey
あなたは何を得ているのですか?デバッグすると便利です –
カラム値の前後に引用符を置いていないのを忘れてしまいました。また、この方法で挿入しないでください。代わりに、パラメータを使用する必要があります。 – mshsayem