Python unsupported format character ',' MEGOLDVA

Siasztok,

egy php-s kódomat alakítom át python-ra. Az sql parancsokat előre össze szoktam állítani.

Most így próbáltam:

sql="UPDATE job \
                    set type='%s' , \
                    completed_savetime='%s', \
                    completion_status='%s%, \
                    data_class='%s', \
                    data_set_size='%s', \
                    data_size='%s', \
                    end_time='%s', \
                    estimated_bytes='%s', \
                    file_count='%s', \
                    files_totals='%s', \
                    host='%s', \
                    job_state='%s', \
                    level='%s', \
                    name='%s', \
                    nw_client_name_id='%s', \
                    processed_bytes='%s', \
                    saveset_name='%s', \
                    saveset_time='%s', \
                    ssid='%s', \
                    start_time='%s', \
                    vcenter_hostname='%s', \
                    vm_guest_os='%s', \
                    vm_name='%s', \
                    vm_uuid='%s', \
                    where job_id=%s  and torolve=0" % (\
                    tipus,completed_savetime,completion_status,data_class,
                    data_set_size,data_size,end_time,estimated_bytes,
                    file_count,files_totals,host,job_state,level,name, 
                    nw_client_name_id,processed_bytes,saveset_name,saveset_time, 
                    ssid,start_time,vcenter_hostname,vm_guest_os,vm_name, 
                    vm_uuid, job_id, kornyezet)

Az utolsó sorra ezt írja:    

ValueError: unsupported format character ',' (0x2c) at index 134                

Nem értem, hogy hol a hiba. Több másik lekérdezésem is van, ugyan ilyen tördeléssel.

Hozzászólások

Nem beszélek pythont, de ez ránézésre érdekes:

                    completion_status='%s%, \

(mert hogy mindenhol máshol '%s' van

És az alábbi sor is érdekes:

                    where job_id=%s  and torolve=0" % (\

De egyébként az index 134 sokat segít.

Ha nem válaszolnék kommentben, hát küldj privátot!

Én azt hittem, az SQL injection már olyan régi, hogy mindenki ismeri, és kihalt.

Szerintem a kérdezőnek legalább ezt el kéne olvasni, mielőtt az egész kódját átalakítja ilyen sechole-sinkre:

https://realpython.com/prevent-python-sql-injection/

Szerkesztve: 2020. 09. 25., p – 12:01

> vm_uuid='%s', \
> where job_id=%s ..

Az a rész is gyanús ahol vessző kerül a where elé.

Szerk: öröm lehet ilyen kódot karbantartani.

Sziasztok!

Köszönöm a tanácsokat, újra gondoltam több mindent.
Át is írtam több elgondolást.