python - MySQL - 即使包含整数也返回 NULL

标签 python mysql phpmyadmin cgi

我正在使用 Python CGI 和 MySQL (phpmyadmin)。我正在尝试在 python 中运行此 SQL 语句:(本例中 tk_journey = 620 - %s 所在的位置)

SELECT tk_id, tk_seat_number FROM tickets
        WHERE tk_journey = '%s'
        ORDER BY tk_id DESC LIMIT 1;

它在 phpmyadmin 中完美运行并显示它应该显示的内容(就是这个):

tk_id tk_seat_number
 94         2

但是,当我通过 python 脚本运行它时,它会为每个脚本返回 None/NoneType。

我尝试过使用这个:SELECT MAX(tk_id), tk_seat_number FROM tickets WHERE tk_journey = '%s'但这给出了相同的结果。

我尝试使用不带引号的 %s,但它也在 mysql 语法中生成了错误。我还尝试关闭和打开数据库连接 - 没有成功。 我已经尝试研究这个问题很多但没有帮助。

这是Python代码:

def getSeatNum(jid):
    statement = '''SELECT tk_id, tk_seat_number FROM tickets
        WHERE tk_journey = '%s'
        ORDER BY tk_id DESC LIMIT 1;'''
    cursor.execute(statement, jid)
    row = cursor.fetchone()
    seat_num = row[0]
    return(seat_num)

seat_no = getSeatNum(jid)

jid = 620。 数据库连接工作正常,因为还有其他几个与选择/插入信息到表中类似的功能,但这个似乎失败了?

提前致谢!

编辑:我不确定这是否是我应该做的。这被标记为此问题的重复项:Python MySQL TypeError 。我从来没有遇到过这个类型错误。如果程序运行时没有生成错误 - 它只是返回“NULL”,这反过来会影响后面的程序,因为变量将只是“NULL”。我遇到的错误是如上所示的 SQL 语法错误以及当我摆弄让它工作时的各种 Python 错误。不是这个 TypeError 。

最佳答案

cursor.execute() 的第二个参数必须是一个元组,其中包含填充查询中所有占位符的值。即使只有一个占位符,您也需要一个元组。所以应该是:

cursor.execute(statement, (jid,))

关于python - MySQL - 即使包含整数也返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42613195/

相关文章:

mysql - 无法在 mysql 中创建表错误(150)

MySQL 纯文本哈希密码

mysql - #2054 无法登录 MySQL phpMyAdmin

mysql - 是否可以向 mysql 中的组合键添加外键约束?

mysql - 无法将经度和纬度导入 phpMyAdmin

python - 如何访问groupby中的列? - Pandas

python - 如何优化编辑距离代码?

php - 键存在于表中,但在 MySQL 中显示 Can't Drop foreign key

python - ExtractSURF 总是返回相同的方向

python - Slack RTM 与 python-rtmbot : making short-links work