【问题标题】:PyMySQL insert not workingPyMySQL插入不起作用
【发布时间】:2016-12-12 05:04:41
【问题描述】:
conn = pymysql.connect(host = '127.0.0.1', unix_socket = '/var/run/mysqld/mysqld.sock',
                       user = 'root', passwd='', db = 'mysql')

cur = conn.cursor()
cur.execute("USE info")

def store(name, review_url, city, state, zip, phone_number, rooms, email):

    # prints this
    print('trying to commit')

    sql = "INSERT INTO 'Hotels' ('name', 'review_url', 'city', 'state', 'zip', 'phone_number', 'rooms', 'email') VALUES" \
          "(%s, %s, %s, %s, %s, %s, %s, %s)"
    cur.execute(sql, (name, review_url, city, state, zip, phone_number, rooms, email))
    cur.connection.commit() 

    # doesnt print this
    print('tried to commit')

我没有收到任何错误,数据库名和表名以及所有列名都是正确的。

它打印出“尝试提交”,但没有打印出“尝试提交”

有人知道为什么会这样吗?

【问题讨论】:

  • 不就是conn.commit()吗?
  • @Dan-Dev 我认为任何一种方式都可行,我将其更改为 conn.commit() 并收到相同的行为
  • 想给MCVE。我的服务器给出了这个错误:(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''Hotels' ('name', 'review_url', 'city', 'state', [ … ] at line 1")。这似乎是一个与报价相关的问题。

标签: python mysql pymysql


【解决方案1】:

你有单引号

"INSERT INTO 'Hotels' ('name', 'review_url', 'city', 'state', 'zip', 'phone_number', 'rooms', 'email') 

尽量不要使用单引号或使用反引号

"INSERT INTO Hotels (name, review_url, city, state, zip, phone_number, rooms, email)

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 2019-01-01
    • 2016-03-17
    • 2017-03-23
    • 2014-04-12
    • 1970-01-01
    • 2017-06-11
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多