PYTHON 数据库mysql更新语句中加入变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON 数据库mysql更新语句中加入变量?相关的知识,希望对你有一定的参考价值。

dn=1
dn1=2
dn3=8999
sql="update plcandsql set tosql1="+dn+",tosql1="+dn1+" where id=1"
为什么会报错,正确的怎么写?
--------------------------------------------
Traceback (most recent call last):
File "E:/python/PLCandmysqlAN.py", line 76, in <module>
sql="update plcandsql set tosql1="+dn+",tosql1="+dn1+" where id=1"
TypeError: can only concatenate str (not "int") to str
>>>

参考技术A 可以在SQL语句中使用“?”占位符。比如:
dn=1
dn1=2
dn3=8999
con = dt.connect("data.db")
cur = con.cursor()
sql="update plcandsql set tosql1=?,tosql1=? where id=1"

cur.execute(sql, (dn,dn1))
参考技术B sql="update plcandsql set tosql1="+str(dn)+",tosql1="+str(dn1)+" where id=1"
dn和dn1都用str转换为字符串。本回答被提问者采纳

mysql日志问题

我用Wampserver2.4来搭建环境想看到每次访问mysql都是使用了哪些sql语句(查询+更新+插入)。网上说只要在mysql目录下的my.ini文件中加入log=E:/wamp/logs/mysql-log.log就可以了,但是我加入之后mysql服务启动不了了导致连接不上数据库了,把加入的语句删除了就可以正常使用了,请问有什么该如何修改?才可以实现上面说的功能???

你是想开启mysql的满日志吧

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的

打开 my.ini ,找到 [mysqld] 在其下面添加

long_query_time = 2

log-slow-queries = log=E:/wamp/logs/mysql-log.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件

#log-slow-queries = /var/youpath/slow.log linux下host_name-slow.log

注意目录的权限要可写。追问

wamp下面的my.ini中没有[mysqld] 只有个[wampmysqld]但是我在这里面设置了之后mysql服务就起不来了。还有个my-default.ini 里面有[mysqld]但是我这只成你说的那样也没办法启动mysql服务

追答

wampmysql 有个集成控制台,里面有重启MySQL
建议还是用标准的mysql,到mysql.com 下载一个就行了

参考技术A 确定目录和日志文件都存在,并且可读写追问

文件和目录都在 权限我都设置了可读可写可执行了都不行

追答

那就看看你的mysql版本,my.ini里那句话,我记得好像不只一种写法,
另外,确认没有语法错误,如注释号,分号等

以上是关于PYTHON 数据库mysql更新语句中加入变量?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询日期在结果中加入汉字“年”“月”“日”

MySQL查询日期在结果中加入汉字“年”“月”“日”

在 Jinja2 If/elif 语句中加入字典元素

Python在列表变量中加入多个列表[重复]

python中怎样在参数中加入变量

mysql日志问题