Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL DB-保存特殊字符★_Php_Mysql - Fatal编程技术网

Php MySQL DB-保存特殊字符★

Php MySQL DB-保存特殊字符★,php,mysql,Php,Mysql,我在MYSQL中有一个表。它被定义为字符集-utf8,排序规则:utf8\U general\U ci。定义为varchar的项标题列 我有一个疑问: 更新详细信息集项目\u标题=★32GB价值包★ 索尼Xperia miro ST23i 4GB Int白色带银色,其中TaskID=109 结果是,在ITEM_TITLE列中,我有一个没有★ 和谁一起?相反 问题是:为了节省开支,我应该怎么做★ 在数据库中是否正确 **我找到了一个SQL server的解决方案——使用Nvarchar而不是var

我在MYSQL中有一个表。它被定义为字符集-utf8,排序规则:utf8\U general\U ci。定义为varchar的项标题列

我有一个疑问: 更新详细信息集项目\u标题=★32GB价值包★ 索尼Xperia miro ST23i 4GB Int白色带银色,其中TaskID=109

结果是,在ITEM_TITLE列中,我有一个没有★ 和谁一起?相反

问题是:为了节省开支,我应该怎么做★ 在数据库中是否正确

**我找到了一个SQL server的解决方案——使用Nvarchar而不是varchar,但MySQL中没有这种类型

回答:我明白问题所在,也明白为什么对某人有效的解决方案对我无效。 首先,我的数据库的默认值是字符集拉丁语。所以我把它改成了UTF-8,但它并没有解决这个问题。 原因是我在大多数行中使用了字符集拉丁语。我不知道它是为varchar自动设置的,即使我将表设置为UTF-8也不会更改。所以我把所有的东西都改成UTF-8,它可以正常工作


谢谢你的帮助

这应该没什么问题。让我们试试看

mysql> CREATE TABLE details ( -> id int(11) unsigned NOT NULL AUTO_INCREMENT, -> item_title varchar(255) DEFAULT NULL, -> PRIMARY KEY (id) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO details (item_title) VALUES('★32GB VALUE PACK★ Sony Xperia miro ST23i 4GB Int'); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM details; +----+------------------------------------------------------+ | id | item_title | +----+------------------------------------------------------+ | 1 | ★32GB VALUE PACK★ Sony Xperia miro ST23i 4GB Int | +----+------------------------------------------------------+ 1 row in set (0.00 sec)
因此,您很可能在进出数据库的过程中打断这些字符。

您不能将其存储为数字字符引用吗?比如&9733?布雷特-什么意思存储为数字?如何将字符串存储为数字字符?deceze-我的字符集和排序规则-都是UTF-8。但这对这个角色没有帮助。我正在阅读你在这里添加的链接,但我不确定它有什么帮助me@alex我的意思是,您不能将字符转换为它的数字字符引用&9733;然后,当输出到html页面上时,应能正确显示。@Brett不会将字符作为html实体存储在数据库中。将它们存储为实际字符是没有问题的,这以后就不会那么麻烦了。如果我要做的是将它们插入MYSQL并接收一行,那么如何在之前中断这些字符呢?不管怎样,我和你一样创建了一个新表,它在那里正常工作。我疯了。表是完全相同的,相同的编码,相同的varchar等等。。。我现在需要做的是保存所有数据,创建完全相同的表并复制它。。。希望这能奏效。你能想出什么理由使这种情况可能发生吗?