Seite 1 von 1

MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 13:36
von luzcifer1989
Hallo Leute,

ich bin gerade dabei ein kleines Programm zu schreiben, wo man in einer MySQL/MariaDB ( am Server rennt MariaDB) abfragen machen kann.
Jetzt stehe ich etwas an...
Ich möchte nach schlagwörtern suchen zb.: ASP und Python soll mir dann alles zeigen was es diesbezüglich finden...

Code: Alles auswählen

import mysql.connector
import sys


try:
    connection = mysql.connector.connect(host = "192.168.1.35", user = "admindv", passwd = "***", db = "invtest")
    print("Verbunden mit SQL Server")

except:
     print("Keine Verbindung zum Server")
     sys.exit(0)

cursor = connection.cursor()


eingabe = input("Bitter hier ihre Suche eintragen: ")
cursor.execute("SELECT * FROM inven WHERE titel LIKE %" ,(eingabe, ))

result = cursor.fetchall()

cursor.close()
connection.close()

for r in result:
    print(r)
irgendwer eine idee wo der Fehler sein könnte?
Arbeite derzeit mit Python3.8.
Soll dann eine Desktop App werden wo man in der Datenbank was eintragen,suchen,löschen kann.
Danke im Vorfeld.

Lg

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 13:41
von sparrow
Was ist denn der Fehler?
Was funktioniert nicht? Was hast du erwartet? Fehlermeldungen?

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 13:47
von __blackjack__
@luzcifer1989: Ein Fehler ist das ”nackte” ``except:`` ohne irgendwelche konkreten Ausnahmen. Es wird dort *alles* behandelt mit der nicht wirklich hilfreichen Ausgabe das keine Verbindung zum Server existiert. Das kommt auch wenn Du Dich im ``try``-Block bei einem Namen vertippt hättest, oder bei wirklich *jedem* anderen Laufzeitfehler, ohne das man das erfahren würde.

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 13:54
von luzcifer1989
Wenn ich was suche kommt nur als Ausgabe none lg

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 13:58
von sparrow
Welchen Wert hat denn "eingabe"?

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 14:18
von __blackjack__
@luzcifer1989: Das kann nicht sein. Da muss mindestens noch ein Tupel (oder eine ähnliche Sequenz) drum herum sein, in dem das `None` steckt. Was dann bedeuten würde die Tabelle hätte nur eine Spalte und die Suche findet *einen* Datensatz, und der Wert der Spalte ist in diesem einen Datensatz NULL, was auf das Python-Objekt `None` abgebildet wird. Wobei `None` auch mit einem grossen N anfängt. Mit einem kleinen n wird das alles noch merkwürdiger.

Aber `cursor.execute()` sollte das ganze schon mit einer Ausnahme abbrechen weil in dem SQL kein Platzhalter ist, es aber einen Wert gibt, der einen Platzhalter benötigt.

Entweder ist das nicht der tatsächlich verwendete Code oder die Beschreibung des Ergebnisses passt nicht dazu. Am besten beides als 1:1 Kopie zeigen und nicht irgendetwas ähnliches.

Re: MySQL/MariaDB Abfragen

Verfasst: Montag 28. Oktober 2019, 14:30
von luzcifer1989
@blackjack das ist 1:1...

es gibt einen kleinen Unterschied bei LIKE% gehört %s

Aufbau der Tabellen
ID titel ort medium

ID wird selbst vom SQL Server erzeugt.