vreemde mysql invoegfout

Ik probeer dict-waarden in de database in te voegen. Maar ik krijg foutmelding. hier is mijn woordenboek . Ik gebruik deze code.

       `cols = filter_dict.keys()
        vals = filter_dict.values()
        ("INSERT INTO table (%s) VALUES (%s)", [cols, vals])
`

When I only print this query ("INSERT INTO table (%s) VALUES (%s)", [cols, vals]). I'm getting following output. ('INSERT INTO table (%s) VALUES (%s)', [['cinematography', 'name', 'producer', 'caption', 'studio', 'editing'], ['Venkat Prasad', '100% Love', 'Bunny Vasu', '', '100% Love Poster.jpg', 'Chandra Sekhar T Ramesh,Hari Prasad']])

But When I execute this query I"m getting strange output. the manual that corresponds to your MySQL server version for the right syntax to use near \'table (("\'cinematography\'", "\'name\

Waarom een ​​query uitvoeren met `\ 'aan elke kolom ?? Kan iemand mij helpen? bedankt

0

1 antwoord

De backslashes zijn waarschijnlijk te wijten aan je debugger. Gebruikt u uw code in de interactieve prompt?

Hoe dan ook, de werkelijke problemen zijn:

  • table is a reserved word. You should put table in backticks.
  • If your table contains more than one column, you need to have multiple %s and multiple values.

Bijvoorbeeld:

"INSERT INTO `table` (%s, %s, &s) VALUES (%s, %s, %s)"

U moet ook (cols, vals) wijzigen om de afzonderlijke waarden te vermelden.

(cols[0], cols[1], cols[2] , vals[0], vals[1], vals[2])

Ik zou ook sterk willen suggereren dat u een betere naam voor uw tabel probeert te vinden, bij voorkeur een die:

1) beschrijft wat voor soort gegevens de tabel bevat en

2) is geen gereserveerd woord

2
toegevoegd
Het werkt niet. Krijg dezelfde foutmelding.
toegevoegd de auteur no_freedom, de bron
Ik heb geen idee. Ik ben in de war.
toegevoegd de auteur no_freedom, de bron
Woordenboektoetsen en waarden zijn dynamisch.
toegevoegd de auteur no_freedom, de bron
@ user559744: De fout is vergelijkbaar, maar als u goed kijkt, ziet u dat deze iets verschilt.
toegevoegd de auteur Mark Byers, de bron
@ user559744: Dan moet u de query ook dynamisch bouwen.
toegevoegd de auteur Mark Byers, de bron