python - 我应该如何使用 raw_input 编写正确的 SQL 语句

标签 python mysql

基本上是用户输入绘图id,我可以检查数据库中是否存在绘图id。

请帮助我改进代码。谢谢

import MySQLdb
myConn = MySQLdb.connect("rds-mysql..........rds.amazonaws.com", "user", "", "db1")    
print myConn    
print("myConn Established!")    
B_cur = myConn.cursor()    
plot = raw_input("Enter plot ID: ")   
sql = "SELECT * FROM mydb.Plot WHERE plot_id= %s"    
result = B_cur.execute(sql,(plot))
print result.rowcount

错误消息是:

File "myConn.py", line 16, in <module>
result = B_cur.execute(sql,(plot))
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 210, in execute
    query = query % args
TypeError: not all arguments converted during string formatting

最佳答案

您可以直接使用 format 来代替 (sql,(plot)) 格式,如下所示。

代码:

plot = raw_input("Enter plot ID: ")

sql = "SELECT * FROM mydb.Plot WHERE plot_id= %s"
query= sql,(plot)
print "Your query looks like --"
print query
print "--------------------------------------"
sql = "SELECT * FROM mydb.Plot WHERE plot_id = '{0}'"
query=sql.format(str(plot))
print "My query looks like --"
print query

输出:

Enter plot ID: 123
Your query looks like --
('SELECT * FROM mydb.Plot WHERE plot_id= %s', '123')
--------------------------------------
My query looks like --
SELECT * FROM mydb.Plot WHERE plot_id = '123'

一旦使用格式创建查询,就可以执行

result = B_cur.execute(query)

关于python - 我应该如何使用 raw_input 编写正确的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48181831/

相关文章:

python - 为旅行商问题生成 map /图表 (Python)

python - 提交Django表单后获取GET Var的PK

java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Truncated incorrect DOUBLE value: ',3'

mysql - mysql删除重复项(两个参数)

php - xampp 不启动 mysql

python - 使用 SQL 查询填充 WTForms SelectField

python - 为什么我没有得到列表

python - Powershell 无法将 conda 识别为 cmdlet、函数或可运行程序

python - 基于通过欧氏距离(或任何其他距离计算技术)提取的 SIFT 描述符估计两幅图像的相似性分数

MySQL - count and group by - 在一行中显示所有结果