私はPythonを学んでおり、Webアプリケーションで動作するロードブロッキングを打ちました。 ローカルデータベース(mariadb)からデータを取得しようとしていますが、結果を印刷しようとすると、表示されるのは()
です。Python cursor.fetchall()は空のタプルを返します
この関数は、DBからデータを取得します。
def getHikeInfo(name):
conn, cursor = getConnectionAndCursor()
cursor.execute("SELECT * FROM hiking WHERE name = %s", [name])
# fetch the results
data = cursor.fetchall()
# clean up
cursor.close()
conn.close()
return data
このコードは、関数を呼び出します。
if 'name' in form:
#unpack into python variable
name=form['name'].value
print name #debug purpose to check name is proper
data = getHikeInfo(name)
print data #prints '()'
else:
data = getAllHikes()
showAllHikes(data)
私は連結方法を変更するから物事の束を試してみましたその名前をパラメータとして渡すと、何も動作しないように見えます。 名前は明らかに100%表に含まれています。私は問題が何であるかを見ることができない。
何か助けていただければ幸いです。
cursor.execute("SELECT * FROM hiking WHERE name = '%s'"% name)
をしかし、あなたはあなたのgetHikeInfo
関数にリストを渡している場合、あなたはしなければならないことがあります。
私はmariadbに精通していませんが、SQLクエリを実行して結果を返すことを確実にするためのコマンドラインインターフェイスを備えていますか?そうすれば、コードに問題があることを確認できます。 送信しているステートメントを印刷して、変数から正しく組み立てられていることを確認することもできます。 –
@SamIreland mariadbインターフェイスでクエリを実行し、期待される結果を出力します。この問題は、Pythonコードにあるようです。提案のおかげで –
@ishyfishy、私のポストはあなたの質問の答えを構成するために何か追加の明確化が必要ですか?私に知らせてください、私は編集することができます。ありがとう! – Abdou