我正在使用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之一。答案 0 :(得分:2)
cursor.execute()
的第二个参数必须是一个元组,其中包含要填充查询中所有占位符的值。即使只有一个占位符,也需要一个元组。所以它应该是:
cursor.execute(statement, (jid,))