嘿,我想知道是否有人能帮助一个初学者学习SQL和Python。我以为我对这件事有相当的了解,不过最近发生了一些奇怪的事。在
以下是从较大部分截取的以下代码:
try:
self.db.query("SELECT * FROM account WHERE email = '{0}' AND pass = '{1}'".format(self.mail.strip(self.bchars),self.pw.strip(self.bchars)))
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
exists = self.db.store_result().fetch_row()
print "EXISTS",exists
它用来打印:
^{pr2}$现在,它打印了这个: 它用来打印:
^{3}$我不知道我是从哪里来的。我检查了SQL数据库,甚至重新加载了它以确定。我已经恢复了前一天的所有代码(所有代码都在运行),但仍然找不到解决方案。我也尝试过搜索,但我甚至不知道这个问题叫什么,所以很难搜索。感谢任何人提供的帮助或信息。在
SQL中的数据是long类型吗?在
正如您在tuple中看到的,它们仍然是有效的数字,而不是字符串,因此这不应该引起任何问题。在
我认为,python的dbapi应该总是返回整数字段。在
不管怎样,10L、5L等等是repr(在您的情况下,它用于元组的每一项)的长时间工作方式。在
还有一件事。我明白了,你在用MySQLdb。在这种情况下,我强烈建议您停止使用c-api包装器,而是使用“real”接口,该接口具有所有自动转换/转义和其他一些奇妙的功能(dict游标就是其中之一)。在
这将为您节省很多麻烦,并使您的代码更加稳定/安全。简而言之,忘了mysql。相信我。在
您的示例可以重写如下(使用适当的接口):
这与您正在做的一样(除了错误处理),但是没有手动的字符串格式化、转义等等。在
我知道,这可能会因为无关紧要而被否决,但如果这个答案能帮助一个单身的人开始使用正确的数据库api,那将是非常棒的。在
2L是2的长版本:不同的对象但值相同。在
您运行的是相同的(python、packages、db、OS…)?在
相关问题 更多 >
编程相关推荐