python 写数据库 字符串_python-如何向mysql插入unicode字符串

代码如下:

连接服务器

MySQLdb.connect(host=ip, user='root', passwd='root',db='test',use_unicode=True,charset="utf8")

......

sql = "INSERT INTO ci(id,name) VALUES (493,u'Hello')"

print sql

ret = root.execute(sql)

.....

在服务器中,名称的类型为VARCHAR(1000).然后,当我运行此脚本时,它显示错误ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在附近使用正确的语法

但是当我用“ Hello”代替“ Hello”时,就可以了.因此,也许它不支持unicode,然后我通过GUI将unicode字符串(例如“你好”)手动插入到表中,也可以.我找不到原因,谁可以帮助我

解决方法:

MySQL需要将字符串括在直引号中:’你好’,不允许使用’u’符号.只需将整个字符串声明为Unicode并将其传递给MySQL.我在这里使用准备好的语句:

sql = u"INSERT INTO ci(id,name) VALUES (493,'你好')"

连接到MySQL以确保服务器将正确解释您发送的字符串后,不要忘记运行“ SET NAMES’UTF-8’”(或UTF-16-不知道您使用的是哪种编码)它.

标签:python,mysql

来源: https://codeday.me/bug/20191122/2062365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值