带有%s的Pymysql UPDATE会出现未知错误

时间:2016-05-22 19:55:35

标签: python mysql sql-update pymysql

我尝试使用pymysql更新sql数据库中的一行。为了使整个事物更加pythonic,我定义变量和位置以使用%s进行更新。 这适用于一个变量,但另一个变量是我不明白的错误。 这是我的代码:

with connection.cursor() as cursor:
    #sql = "update tf_data set doi=\'"+str(DOI)+"\' where tf_data_id="+str(tf_data_id)+";"
    sql = "update tf_data set doi=%(DOI)s where tf_data_id=%(data_id)s"
    DOI=DOI
    data_id = str(tf_data_id)
    cursor.execute(sql)

连接是在脚本开头定义的,并且已经有效。 变量是:

DOI= '10.1371/journal.pone.0151666'

tf_data_id = 1
如果我执行,我认为命令应该直接在mysql中运行:

update tf_data set doi='10.1371/journal.pone.0151666' where tf_data_id='1';

有人可以告诉我,这是什么问题?

1 个答案:

答案 0 :(得分:1)

你需要

function success(position) {
    var latitude  = position.coords.latitude;
    var longitude = position.coords.longitude;
    console.log(latitude, longitude);
    }


  navigator.geolocation.getCurrentPosition(success);

或者您可以使用sql = "update tf_data set doi='%s' where tf_data_id='%s'" % (str(DOI), str(tf_data_id)) 方法

format()