0

私はpythonが初めてで、php5から移動したばかりです。クエリを準備するために qmark パラメータ表記について読みましたが、次のようになります。

Traceback (most recent call last):
  File "t.py", line 10, in <module>
    cursor.execute("SELECT * FROM object WHERE otype = ?", ["user"])
  File "/usr/local/lib/python3.4/site-packages/pymysql/cursors.py", line 130, in execute
    query = query % self._escape_args(args, conn)
TypeError: not all arguments converted during string formatting

それはsqliteコネクタ専用ですか?

import sys
import pymysql

try:
    connection = pymysql.connect(host="127.0.0.1", user="root", passwd="pass", db="xxx")
except:
    sys.exit("Database connection error")

cursor = connection.cursor()
cursor.execute("SELECT * FROM object WHERE otype = ?", "user")

for row in cursor:
   print(row)

cursor.close()
connection.close()
4

1 に答える 1

2

はい。残念ながら、DB-API 仕様では、パラメーターの選択は各実装者に委ねられていました。pysqlite は ? を選択し、MySQLdb は %s を選択しました。pymsql は MySQLdb のドロップイン置換であるため、%s も使用します。

于 2014-06-17T10:42:48.917 に答える