python - 如何将unicode字符串插入mysql

标签 python mysql

代码如下:

连接服务器

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)
.....

在服务器中,name 的类型是 VARCHAR(1000)。然后当我运行这个脚本时,它显示错误 ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponding to your MySQL server version for the right syntax to use near

但是当我将 u'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 - 如何将unicode字符串插入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781194/

相关文章:

javascript - 网站自动获取消息到 php 聊天应用程序不工作

mysql - 转换查询以处理空集结果

python - pandas OLS 中 R^2 调整值不一致

javascript - 在 Javascript 中为按钮添加 ID

mysql - 无法在 cent 0s 6.10 上启动 Mysql 5.7

mysql - 使用具有换行符的列导出 MySQL 中的表

python - 有没有办法获得多条曲线与另一条曲线的所有交点?

python - 在 matplotlib 图上裁剪文本

python - 从 CSV 为 Google map 创建 KML 文件

mysql - #1064、xampp、phpMyAdmin、MYSQL - 为什么我的 mySQL 语法有错误?