Php 如何插入&;MySQL中的符号?
我正在将CSV文件插入MySQL表中。CSV文件的一行有一个名称和符号,如下所示:Php 如何插入&;MySQL中的符号?,php,mysql,mysqli,Php,Mysql,Mysqli,我正在将CSV文件插入MySQL表中。CSV文件的一行有一个名称和符号,如下所示: Peter & Peter 在数据库插入之前不久,$Variable的echo语句给出了“Peter&Peter”,在此之前,字符串看起来很好。 但插入后,数据库显示: Peter & Peter 如何将“&”-符号插入数据库 连接数据库后,我将所有可能的设置指示给UTF8: # Database Connection here $mysqli->query("SET NAME
Peter & Peter
在数据库插入之前不久,$Variable的echo语句给出了“Peter&Peter”,在此之前,字符串看起来很好。
但插入后,数据库显示:
Peter & Peter
如何将“&”-符号插入数据库
连接数据库后,我将所有可能的设置指示给UTF8:
# Database Connection here
$mysqli->query("SET NAMES 'utf8'");
$mysqli->set_charset("utf8");
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);
数据库参数:
- 当前字符集为utf8
- 列类型为varchar(200)
- DB表为“utf8\u general\u ci”,并且
- 该表的所有字段也设置为排序规则“utf8\U general\U ci”
如何将“&”符号插入数据库?插入(字段)值(“&”) MySQL不关心
&
,所以除非您在插入中做了一些非常奇怪的事情,否则这不是问题。正如Qirel指出的,在插入时不要使用htmlspecialcars
。这并不能正确地逃逸您的数据,它只会将其破坏。如果可以,请编辑以显示插入代码,因为我感觉您没有使用带有占位符值的准备语句。这将解决您的问题;通过浏览器转换到&因此;很可能在你注意到它之前很久就已经存在了。&
对于MySQL来说并不是一个特殊的字符。将其与其他常规字符一样使用(例如,A
)。确保您没有htmlentities()
或htmlspecialchars()
未显示为HTML的文本(插入数据库不需要生成HTML)。@Calimero我将按字面解释“数据库显示”,如&除非另有说明,否则代码>在数据库中。在这种情况下,浏览器不是一个因素。此外,如果您回显&
,那么您将在浏览器中看到这一点,而无需翻译。这很容易通过一个最小的HTML文件和“查看源代码…”“如何在数据库中插入“&”-符号?”(它的名称是符号)进行测试,如下:INSERT-into-SOQ46058921值('这是对&INSERT的测试')代码>工作正常。也许你看错了东西?