私はPythonのaiomysql execute関数を使用してSQLクエリを実行しています。テスト機能でPython aiomysqlは、クエリ引数を引用符で囲みます。
@asyncio.coroutine
def select(sql,args=None,size=None):
log(sql,args)
global __pool
with (yield from __pool) as conn:
cur = yield from conn.cursor()
yield from cur.execute(sql.replace('?','%s'),args or())
if size:
rs = yield from cur.fetchmany(size)
else:
rs = yield from cur.fetchall()
__pool.close()
yield from __pool.wait_closed()
return rs
は、私は、エラーのユーザーの周りの引用符のセットがあるように見える
pymysql.err.ProgrammingError: (1064, "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 ''users'' at line 1")
を得たターミナルで
@asyncio.coroutine
def test():
yield from create_pool(loop=loop,user='app',passwd='app')
sql = 'select ? from ?'
arg = ['id','users']
rs = yield from select(sql,arg)
print(rs)
global __pool
__pool.close()
yield from __pool.wait_closed()
をしました。私は最後を変えようとした? 〜%sになっていて、何とかうまくいけば、明らかに? idのために働いたが、ユーザーのために働かなかった。ユーザーの周りに引用符があるのはなぜですか?どのように修正できますか?
は
はあなたが少しを起草いただけます実行し、多分与えるに渡す前に指定する必要がありそうです例。私はちょっとあなたが意味するものに混乱している – demalegabi
https://dev.mysql.com/doc/refman/5.0/en/information-schema.html –