代码如下:
连接服务器
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