MySQL Variable in Select abfrage einbauen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
reeeper
User
Beiträge: 6
Registriert: Sonntag 20. Juli 2008, 21:28

MySQL Variable in Select abfrage einbauen

Beitragvon reeeper » Sonntag 20. Juli 2008, 21:36

hallo alle zusammen
ich bin ziemlich neu im berreich python und versuche mir gerade für einen CS:S Server ein plugin zu schreiben.
ich hab allerdings ein kleines problem, ich hole mir eine variable aus einem server event, bekomme sie aber nicht in den query eingebaut

naja wie gesagt ich bin recht neu auf dem gebiet und würde mich über jede hilfe sehr freuen. hier der code den ich bisher habe

Code: Alles auswählen

import es
import _mysql
import MySQLdb
connection = MySQLdb.connect("127.0.0.1","root","password","playtime")
def player_activate(event_var):
    pid = (event_var['es_steamid'])
    cursor = connection.cursor()
    cursor.execute('SELECT COUNT(*) FROM steamid WHERE steamid =' ['pid'])
    for row in cursor:
        es.msg (row)
        es.msg (pid)


wie gesagt hilfe währe sehr nett :)
mfg reeeper
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 20. Juli 2008, 22:14

Code: Alles auswählen

cursor.execute('SELECT COUNT(*) FROM steamid WHERE steamid = ?', pid)

bzw.

Code: Alles auswählen

cursor.execute('SELECT COUNT(*) FROM steamid WHERE steamid = %s', pid)

Ich weiß nicht welche Platzhalter MySQLdb da nimmt, aber es sollte einer von den beiden sein.

Siehe auch [wiki]Parametrisierte SQL-Queries[/wiki].
My god, it's full of CARs! | Leonidasvoice vs Modvoice
reeeper
User
Beiträge: 6
Registriert: Sonntag 20. Juli 2008, 21:28

Beitragvon reeeper » Montag 21. Juli 2008, 06:46

vielen dank für die schnelle antwort :) das zweite ist richtig danke
reeeper
User
Beiträge: 6
Registriert: Sonntag 20. Juli 2008, 21:28

Beitragvon reeeper » Montag 21. Juli 2008, 12:57

so jetzt steh ich bei meinem zweiten problem
ich hab eine if schleife

Code: Alles auswählen

 curtime = strftime('%H%M')
    if curtime > 2200:
        pkick = 1
    elif curtime < 800:
        pkick = 1
    else:
        pkick = 0
   es.msg (pkick)


mein problem ist jetzt das der erste check von curtime nicht funktioniert
sprich curtime > 2200 ist immer TRUE
egal wieviel uhr es ist
frage ist jetzt nur ist das irgend ein bug oder kommt irgendetwas nicht mit der 2200 klar weil die zu groß ist oder so ?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 21. Juli 2008, 13:01

Erstens gibt es keine if-Schleifen und zweitens ist das eine neue Frage die du in einem neuen Thread stellen solltest. Im Python-Forum gibt es keine privaten Support-Threads.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
reeeper
User
Beiträge: 6
Registriert: Sonntag 20. Juli 2008, 21:28

Beitragvon reeeper » Montag 21. Juli 2008, 14:57

ok danke dann kann hier zu gemacht werden wusste nicht das das hier ungern gesehen ist *g*
mfg reeeper
BlackJack

Beitragvon BlackJack » Montag 21. Juli 2008, 15:22

@reeeper: Du vergleichst eine Zeichenkette mit einer ganzen Zahl. Das gibt ein willkürliches, aber konsistentes Ergebnis, d.h. alle Zeichenketten sind entweder kleiner oder grösser als alle ganzen Zahlen.

Das ``if`` ist nicht nötig, man kann das auch so schreiben:

Code: Alles auswählen

    current_time = int(strftime('%H%M'))
    pkick = int(not (800 <= current_time <= 2200))
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Dienstag 22. Juli 2008, 11:42

Leonidas hat geschrieben:Erstens gibt es keine if-Schleifen ...

http://if-schleife.de/
Der mußte hier einfach sein :-)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder