Python tki̇nter yardim edermi̇si̇ni̇z?

port = '/dev/ttyUSB0'
ser = serial.Serial(port, 9600, timeout=1)
# To open relay (OFF)
code = '5501310000000188'
ser.write(code.decode('HEX'))
ser.close()

ben bu komutu mysql komutislevi bölümüne kayıt etmek istiyorum ama şöyle bir hata alıyorum:

ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''
ser = serial.Serial(port, 9600, timeout=1)
# To open relay (OFF)
code = '55013' at line 1

böyle bir hata alıyorum lütfen yardım edermisiniz?

Bu sorunun tkinter ile nasıl bir ilgisi var?

1 Beğeni

mysql tkinter ve python kullanıyorum ondan ilgisi olabilir mi?

Kullanmiyorsun. Uc satir seri port kodu ve bir MySQL hata mesajindan baska bir sey yok.

1 Beğeni

tamam işte bu hatayı nasıl düzeltebilirim . kaldı ki size kullanıp kullanmadığımı kanıtlamak zorunda değilim ben mysql veri tabanına bunu kaydetmek istiyorum nasıl bir yöntem izleyebilirim ?

port = '/dev/ttyUSB0'
ser = serial.Serial(port, 9600, timeout=1)
# To open relay (OFF)
code = '5501310000000188'
ser.write(code.decode('HEX'))
ser.close()

Bu hatayi bize kullandigini kanitlayarak duzeltebilirsin, ama dedigin gibi; zorunda degilsin.

Bu arada bi dakka, soru mu degisti?

Herhangi bir veriyi veritabanina kaydetmek icin SQL INSERT statement’ini kullanabilirsin.

#/usr/bin/env Python
#-*-coding:utf-8-*-
from io import open
import time
import os

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from Tkinter import * 

import MySQLdb as db
from sshtunnel import SSHTunnelForwarder

sql_hostname = '127.0.0.1'
sql_username = 'root'
sql_password = '1968Hram'
sql_main_database = 'YAPAYZEKA'
sql_port = 3306
ssh_host = '192.168.1.40'
ssh_user = 'root'
ssh_psd = '1968Hram'
ssh_port = 22

with SSHTunnelForwarder(
          (ssh_host, 22),
          ssh_username=ssh_user,
          ssh_password = ssh_psd,
          remote_bind_address=(sql_hostname, 3306)
     ) as server:
          connection = db.connect(host=sql_hostname,
          port=server.local_bind_port,
          user=sql_username,
          passwd=sql_password,
          db=sql_main_database)

im = connection.cursor()

class veri():
	def verikomutekle1(self,):
		global komutsahibi1
		global komutadi1
		global komut1
		global komutislevi1
		global komutsahibi
		global komutadi
		global komut
		global komutislevi
		
		komutsahibi = str(komutsahibi1.get())
		komutadi = str(komutadi1.get())
		komut = str(komut1.get())
		komutislevi  = str(komutislevi1.get("1.0", "end-1c"))
		
		veri().verikomutekle(komutsahibi,komutadi,komut,komutislevi)
		
	def verikomutekle(self,komutsahibi,komutadi,komut,komutislevi):
		im.execute("SELECT komutid FROM KOMUTLAR ORDER BY komutid DESC LIMIT 1")
		myresult = im.fetchall()
		for x in myresult:
			komutid11 = int(x[0])
			if komutid11 == " ":
				print("Komut Id Numarası : " + str(komutid11))
				komutid1 = 0 + 1
				komutid = int(komutid1)
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi)
				print("Komut Adı : " + komutadi)
				print("Komut : " + komut)
				print("Komut İşlevi : " + komutislevi)
				sql = """INSERT INTO KOMUTLAR (komutid, komutsahibi, komutadi, komut, komutislevi) VALUES ("+komutid+","+komutsahibi+","+komutadi+","+komut+","+komutislevi+") """
				im.execute(sql)
				connection.commit()
				print("KAYIT BAŞARILI")
			else:
				komutid11 += 1
				komutid = komutid11
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi)
				print("Komut Adı : " + komutadi)
				print("Komut : " + komut)
				print("Komut İşlevi : " + komutislevi)
				im.execute("INSERT INTO KOMUTLAR (komutid, komutsahibi, komutadi, komut, komutislevi) VALUES ('%s','%s','%s','%s','%s')" % (str(komutid),komutsahibi,komutadi,komut,komutislevi))
				connection.commit()
				print("KAYIT BAŞARILI")


class komutislemleri():
    def komutekle(self,):
        pencere = Tk()

        global komutsahibi1
        komutsahibiyazi = Label(pencere, text="KOMUT SAHİBİ YAZINIZ : ")
        komutsahibiyazi.pack()
        komutsahibi1 = Entry(pencere)
        komutsahibi1.pack()

        global komutadi1
        komutadiyazi = Label(pencere, text="KOMUT ADI YAZINIZ : ")
        komutadiyazi.pack()
        komutadi1 = Entry(pencere)
        komutadi1.pack()

        global komut1
        komutyazi = Label(pencere, text="KOMUT YAZINIZ : ")
        komutyazi.pack()
        komut1 = Entry(pencere)
        komut1.pack()

        global komutislevi1
        komutisleviyazi = Label(pencere, text="KOMUT İŞLEVİ YAZINIZ : ")
        komutisleviyazi.pack()
        komutislevi1 = Text(pencere)
        komutislevi1.pack()

        button = Button(pencere, text="KOMUTU KAYDET", command=lambda: veri().verikomutekle1())
        button.pack()

        pencere.mainloop()

şimdi bu benim yapayzekakomutislemleri.py

ben bunu açıyorum tek satırlık herşeyi kayıt altına alıyor

ama lakin

port = '/dev/ttyUSB0'
ser = serial.Serial(port, 9600, timeout=1)
# To open relay (OFF)
code = '5501310000000188'
ser.write(code.decode('HEX'))
ser.close()

bunu yazıyorum ama işlem hata veriyor

acaba neden sustunuz herşeye cevabı olan gizemli bey?

cevap verecekmisiniz yoksa bilmeyip kendinizin egosunu yükseltmek için mi cevap yazmaktasınız ?

Program açılamadı. Çalıştırdığım zaman bir süre bekliyor ve aşağıdaki hatayı fırlatıyor. Siz daha önce böyle bir hata aldınız mı?

tanberk@kutlu:~$ ./yapayzekakomutislemleri.py
2020-02-27 13:59:43,308| ERROR   | Could not connect to gateway 192.168.1.40:22 : 110
Traceback (most recent call last):
  File "./yapayzekakomutislemleri.py", line 32, in <module>
    remote_bind_address=(sql_hostname, 3306)
  File "/usr/local/lib/python2.7/dist-packages/sshtunnel.py", line 1552, in __enter__
    self.start()
  File "/usr/local/lib/python2.7/dist-packages/sshtunnel.py", line 1294, in start
    reason='Could not establish session to SSH gateway')
  File "/usr/local/lib/python2.7/dist-packages/sshtunnel.py", line 1100, in _raise
    raise exception(reason)
sshtunnel.BaseSSHTunnelForwarderError: Could not establish session to SSH gateway

bu hatayı ilk defa görüyorum benim pc de böyle hata vermiyor sorun nerede acaba söyleyebilir misiniz?

Programı çalıştırıyorum, bir süre bekliyor sonra da bu hatayı fırlatıyor. Yapmayı unuttuğum bir şey mi var acaba?

arkadaşlar bende yen yeni python öğreniyorum yapmak istediğim şu

1 Adım Benim Bilgisayarıma sshtunnel kullanarak bağlanmak

2 Adım Localhost mysql verittabanına bağlanmak

gerisi çalışıyor ama bu 2 adım çalışmıyor uzaktan kontrol ettiğim zaman böyle hatalarla karşılaşıyorum çözemedim

Maalesef programı daha çalıştıramadım. Galiba size yardımcı olamayacağım. Umarım arkadaşlar size yardımcı olabilirler.

Hasan Bey, bence Python’u yeterli seviyeye kadar öğrenmeden önce bu kütüphaneler ile çok uğraşmayın. Dili yeterince bilince zaten çoğu hatayı kendiniz de bulabilirsiniz. Buradaki cümleyi tekrar okuyunca bana dil hakkında bilginizin yetersizmiş gibi geldi:

“str nerede” diye soruyorsunuz, sonra da tkinter, MySql ve serial kullanmaya çalışıyorsunuz. Yanlış anlamayın, burada sizi aşağılama gibi bir niyetim yok; biz de bu yollardan geçtik, biz de dilleri ve programlamayı zamanla öğrendik. Ama dediğim gibi şu anda böyle kütüphaneler ile uğraşmanızın yersiz olduğunu düşünüyorum.


Bir de en kısa sürede Python3 kullanmaya başlamanızı öneririm.

Cunku bir toplantim vardi ve ego problemleri olan tanimadigim birine psikologluk yapmayi gec kalmaya deger bulmadim.

Kendi egomu yukseltmek icin yazmaktayim. Hata yapmaktan korkan, tanimadigi insanlarin tamamini kendisiyle ego savasi yapmak icin var oldugunu zannedecek kadar buyuk, fakat en dogal insan interaksiyonlari surecinde bile savunmaya gececek kadar kirilgan ego’lardan cok daha ustun oldugunu anlatmaya calisiyorum. Cunku bu insanlar benim muhtesem ego’ma sahip olmak isterlerse ogrenmeleri onundeki en buyuk engellerden biri kalkabilir.


Biraz daha yucelteyim:

Hata yaptim! Hala yapiyorum. Hep yapiyorum. Yapmamak icin ugrasiyorum ama beceremiyorum. Hic bir sey bilmiyorum. 20 senedir bir seyleri ogrenmeye calistikca bilgim azaliyor, daha cok seyi bilmemeye basliyorum. Egom cok guzel, siz de gelin.

2 Beğeni

Parameterized query kullanilmamis da ondan, fakat ben bunu arkadasin egosunu kirmadan nasil aciklayacagim? @dildeolupbiten @EkremDincel siz daha iyi ve sabirlisiniz bu konuda, rica etsem…?

Hatta escape dahi edilmemis, escape edilse belki PQ’ya da gerek kalmaz.

Ne zor günler geçirmişiz.