Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';str';对象在Python上不可调用_Python_Mysql_Database - Fatal编程技术网

类型错误:';str';对象在Python上不可调用

类型错误:';str';对象在Python上不可调用,python,mysql,database,Python,Mysql,Database,我在Python中有这样的代码,当我运行该代码时,我发现一个错误:TypeError:'str'对象不可调用 你愿意帮我纠正这个错误吗?我将不胜感激。:)谢谢你,请原谅我英语不好 您有两处错误地试图格式化SQL字符串: telat=“插入presensi(ID_Pegawai、Nama_Pegawai、Jam_Masuk、Status)值(%s、%s、‘Terlambat’)”(strID_Pegawai、strNama_Pegawai、time) 当前执行(远程登录) 以及: 您试图设置SQL

我在Python中有这样的代码,当我运行该代码时,我发现一个错误:TypeError:'str'对象不可调用
你愿意帮我纠正这个错误吗?我将不胜感激。:)谢谢你,请原谅我英语不好

您有两处错误地试图格式化SQL字符串:

telat=“插入presensi(ID_Pegawai、Nama_Pegawai、Jam_Masuk、Status)值(%s、%s、‘Terlambat’)”(strID_Pegawai、strNama_Pegawai、time) 当前执行(远程登录)

以及:

您试图设置SQL字符串的格式不正确:

telat="INSERT INTO  presensi (ID_Pegawai, Nama_Pegawai, Jam_Masuk, Status) VALUES (%s, %s, %s, 'On Time')" (strID_Pegawai, strNama_Pegawai, time)
cur.execute(telat)
但是,为了帮助防止应用程序遭受SQL注入攻击,您应该执行以下操作:

>>> s = "%s %s %s" % ("foo", "bar", "baz")
>>> s
'foo bar baz'
见:及相关的SO问题

尽管社区对这个问题投了反对票和“接近票”,但我觉得有义务提供这个答案,以帮助防止Python web应用程序受到来自不良指导的常见攻击向量的攻击。”


不要使用
“插入|选择|更新|删除…”s%s%s“(…)
表单!

诸如此类的废话(%s,%s,'准时')”(strID_Pegawai,Strama_Pegawai,Time)
显然是错误的原因。试着缩小导致错误的原因——为了你自己和其他人的利益!
cur
在定义的地方?回溯(最后一次调用):文件“C:\Python34\manggildatabase”“,第26行,在telat=”INSERT INTO presensi(ID_Pegawai,Nama_Pegawai,Jam_Masuk,Status)值(%s,%s,%s,'Terlambat')”(strID_Pegawai,strama_Pegawai,time)TypeError:'str'对象不可调用,这是错误。@cdarke请不要这样建议,直接格式化字符串将使他们的代码vulnerable@cdarke感谢您的关注:)有两个地方OP的SQL字符串格式不正确:)我已经更改了它们,但有一个错误:回溯(最近一次调用):cursor.execute中的文件“C:\Python34\manggildatabase”,第31行(ontime,strID_Pegawai,strNama_Pegawai,time)类型错误:execute()最多接受3个参数(给定5个)
>>> s = "%s %s %s" ("foo", "bar", "baz")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>> s = "%s %s %s" % ("foo", "bar", "baz")
>>> s
'foo bar baz'
telat="INSERT INTO  presensi (ID_Pegawai, Nama_Pegawai, Jam_Masuk, Status) VALUES (?, ?, ?, 'On Time')"
cur.execute(telat, strID_Pegawai, strNama_Pegawai, time)