MySQL/MariaDB Abfragen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
luzcifer1989
User
Beiträge: 8
Registriert: Sonntag 17. März 2019, 10:14

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
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Was ist denn der Fehler?
Was funktioniert nicht? Was hast du erwartet? Fehlermeldungen?
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
luzcifer1989
User
Beiträge: 8
Registriert: Sonntag 17. März 2019, 10:14

Wenn ich was suche kommt nur als Ausgabe none lg
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Welchen Wert hat denn "eingabe"?
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
luzcifer1989
User
Beiträge: 8
Registriert: Sonntag 17. März 2019, 10:14

@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.
Antworten