我目前正在将我的SQLite数据库移植到MySQL,只是创建了一个脚本来将所有插入的和更多的插入更改为MySQL,但是im有时会得到“旧版本语法错误”:
INSERT INTO players(id, name) VALUES (21457, '/Gohst_Killer67\');数据库结构:
CREATE TABLE IF NOT EXISTS players (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(40))我保存了大量的用户名,但是那些/或\继续引发这些错误消息。我希望有一种不编辑所有包含/或的名称的方法来修复它。
谢谢
发布于 2015-07-06 22:11:20
用mysql的方式是-
Hitesh> CREATE TABLE IF NOT EXISTS players (id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40));
Query OK, 0 rows affected (0.21 sec)
Hitesh> INSERT INTO players(id, name) VALUES (21457, '/Gohst_Killer67\'');
Query OK, 1 row affected (0.04 sec)对于特殊字符,您应该在它之前使用\。就像我在insert中使用了\'一样。
可以通过在SQL模式中设置逃逸来禁用反斜杠转义:
SET @old_sql_mode=@@sql_mode;
SET @@sql_mode=CONCAT_WS(',', @@sql_mode, 'NO_BACKSLASH_ESCAPES');
Hitesh> INSERT INTO players(id, name) VALUES (21457, "/Gohst_Killer67'");
Query OK, 1 row affected (0.04 sec)对于insert单引号,您可以在插入时将字符串放入"“,也可以像我一样将字符串插入”单引号“。另外,您可以使用引号函数报价
https://stackoverflow.com/questions/31256401
复制相似问题