Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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中的符号?_Php_Mysql_Mysqli - Fatal编程技术网

Php 如何插入&;MySQL中的符号?

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

我正在将CSV文件插入MySQL表中。CSV文件的一行有一个名称和符号,如下所示:

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的测试')工作正常。也许你看错了东西?