2017-02-21 5 views
0

私は働いている中小企業のために、システムの内部と外部にクロックを作成しようとしていました。Python MYSQLの問題

現時点では、MySQLサーバと通信するのに問題があります。私はおそらく何か本当に愚かな間違っている。

私はとのトラブルを抱えていますセクションでは、このです:

cnx = mysql.connector.connect(host=localhost, user="time_clock", passwd="kayak100", db="Staff_time_clock") 
cursor = cnx.cursor() 
staffid = input('Please enter your Staff ID now ...') 
idcheck = ("SELECT staff_name, staff_id FROM Staff WHERE staff_id = %s") 
cursor.execute(idcheck,(staffid)) 

私はMYSQLを使用することに非常に新しいですし、試してみて、この小さなプログラムを行うには、それを学んできました。

編集 - 申し訳ありませんが、私が得るエラーコードを追加するのを忘れました。

--------------------------------------------------------------------------- 
ProgrammingError       Traceback (most recent call last) 
<ipython-input-49-b672a17a258e> in <module>() 
----> 1 cursor.execute(idcheck,) 

C:\Users\ellio\Anaconda3\lib\site-packages\mysql\connector\cursor.py in  execute(self, operation, params, multi) 
    505    self._executed = stmt 
    506    try: 
--> 507      self._handle_result(self._connection.cmd_query(stmt)) 
    508    except errors.InterfaceError: 
    509     if self._connection._have_next_result: # pylint: disable=W0212 

C:\Users\ellio\Anaconda3\lib\site-packages\mysql\connector\connection.py in cmd_query(self, query) 
    720   if not isinstance(query, bytes): 
    721    query = query.encode('utf-8') 
--> 722   result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) 
    723 
    724   if self._have_next_result: 

C:\Users\ellio\Anaconda3\lib\site-packages\mysql\connector\connection.py in _handle_result(self, packet) 
    638    return self._handle_eof(packet) 
    639   elif packet[4] == 255: 
--> 640    raise errors.get_exception(packet) 
    641 
    642   # We have a text result set 

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 '%s' at line 1 

これはエラーの合計です。

+1

あなたは正確に抱えている問題は何ですか? –

+0

あなたが得ている出力(エラー)を追加してください – davejal

答えて

0

あなたの問題はあなたが正しくあなたの文字列の書式を設定していないということです、ありがとうございました。

は、次のことを実行してみ:

cnx = mysql.connector.connect(host=localhost, user="time_clock", passwd="kayak100", db="Staff_time_clock") 
cursor = cnx.cursor() 
staffid = input('Please enter your Staff ID now ...') 
idcheck = "SELECT staff_name, staff_id FROM Staff WHERE staff_id = %s" % staffid 
cursor.execute(idcheck) 
+0

ありがとうございます@AvihooMamkaはそれを解決しました。それはかなりオンラインで見えましたが、動作していないような非常に多くのバリエーションがありました。 –

+0

文字列のフォーマット[here](https://pyformat.info/) –