MySQL - 即使它包含一个整数,也返回NULL

时间:2017-03-05 19:52:21

标签: python mysql phpmyadmin cgi

我正在使用Python CGI和MySQL(phpmyadmin)。我正在尝试在python中运行此SQL语句:(对于此示例,tk_journey = 620 - 其中%s为)

<?php 
$url = 'https://www.instagram.com';
$returned_content = get_data($url);
print_r($returned_content)
/* gets the data from a URL */
function get_data($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
?>

它在phpmyadmin中完美运行并显示它应该是什么(这是这个):

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

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

我尝试过使用此功能:tk_id tk_seat_number 94 2 但结果相同。

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

这是python代码:

SELECT MAX(tk_id), tk_seat_number FROM tickets WHERE tk_journey = '%s'

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

提前致谢!

编辑:我不确定这是不是我的意思。这被标记为此问题的副本:Python MySQL TypeError。我从来没有得到过这种TypeError。如果程序在没有生成错误的情况下运行 - 它只返回'NULL',这反过来影响了后来的程序,因为变量只是'NULL'。我会得到的错误是上面显示的SQL语法错误以及当我摆弄它以使其工作时的各种Python错误。不是这个TypeError之一。

1 个答案:

答案 0 :(得分:2)

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

cursor.execute(statement, (jid,))