ich bin neu in diesem Forum und experimentiere gerade mit Python (verwende die Version Python 3.10.0) und mySQL (Version 8.0.26).
Trotz intensiver Recherche im Netz und diesem Forum habe ich jetzt keine Lösung für mein aktuelles Problem gefunden.
Deshalb hoffe ich, dass die Profis in diesem Forum mir hier weiterhelfen können.
Dafür schon mal vorab vielen Dank!
Ich habe die Tabelle 'countries' in der DB 'countrydb' erstellt:
"CREATE TABLE countries ("
" country_numeric INTEGER(3),"
" last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP,"
" country_name_official VARCHAR(255) NOT NULL,"
" PRIMARY KEY (country_numeric)"")")
Die Abfrage showTBL ergibt folgendes Ergebnis:
================ RESTART: Python-Code/CCmysql_showTBL.py ===============
('countries',)
Wenn ich nun meine INSERT-Funktion laufen lasse (siehe weiter unten), erhalte ich als 'rowcount' immer das Ergebnis "-1".
================== RESTART: Python-Code/CCIBANcsv4.py ==================
INSERT INTO countries (country_numeric, country_name_official, last_update) VALUES (%s, '%s', '%s');
004 / Afghanistan
Total number of rows in table: -1
008 / Albania
Total number of rows in table: -1
Beim Versuch über SELECT Werte aus der Tabelle auszulesen, kommt - vermutlich zu recht - das Ergebnis: "NONE".
=============== RESTART: Python- Code/CCmysql_selectTBL.py ==============
SELECT * FROM countries
None
Wie gesagt, ich beschäftige mich erst seit kurzem mit Python, deshalb bitte nicht allzu kritisch auf mein Coding schauen - ich lerne noch

Wo ist mein Fehler???
===============
from datetime import datetime
import sys
import mysql.connector
import csv
current_timestamp = datetime.now()
insert_timestamp = current_timestamp.strftime('%Y-%m-%d %H:%M:%S')
try:
mydb = mysql.connector.connect(
host="localhost",
user="xxxxxxxx",
password="xxxxxxxx",
database="countrydb")
except:
print ("Keine Verbindung zum Server")
sys.exit(0)
insert_sql = print( "INSERT INTO countries (country_numeric, country_name_official, last_update) VALUES (%s, '%s', '%s');" );
with open('Country-Code-IBAN.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter = ';')
for row in reader:
print(row['Code-Numeric'], "/", row['Country'])
mycursor = mydb.cursor()
try:
mycursor.execute(insert_sql, [(row['Code-Numeric'], row['Country'], {insert_timestamp})])
mydb.commit()
print("Total number of rows in table: ", mycursor.rowcount)
except mysql.connector.Error as error:
print(f"Oh no, something went wrong.\nIt was: {error}")
mydb.rollback()
sys.exit(0)
mycursor.close()
if mydb.is_connected():
mydb.close()
print("MySQL connection is closed")
sys.exit(0)