0

私は今python mysqlで作業しています

私は問題を抱えています ここにmysqlクエリがあります

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent ='idd'

WHERE 外部ソースから idd を取得していますが、このクエリを実行しようとするたびに

エラーが発生しています

  File "server.py", line 28
    query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent ='idd'
                                                                                         ^
SyntaxError: invalid syntax

私が間違っているかもしれないことを助けてください

4

3 に答える 3

2

クエリ パラメータを使用する必要があります。

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent =?'

idd次に、クエリの実行時に値を渡します。

cursor.execute(query, (idd,))

Python では、単純にさまざまな文字列の間に変数を配置して、それが補間されることを期待することはできません。

通常の文字列補間を行うには、次の.format()メソッドを使用します。

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "{0}"'.format(idd)

しかし、ステートメントを準備するデータベース クエリ オプティマイザを見逃すことになります。準備済みステートメントは、繰り返し使用すると実行が速くなります。

于 2012-09-28T13:45:35.240 に答える
0

二重引用符と一重引用符が混在しています。

それ以外の...

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = 'idd'

使用する...

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "idd"'

また、iddは変数ですか?もしそうなら、あなたがする必要があります...

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "'+str(idd)+'"'
于 2012-09-28T13:46:28.260 に答える
0

クエリの作成時に外部変数を連結するのを忘れていたようですが、

query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "'+idd+'"'
于 2012-09-28T13:47:40.400 に答える