MySQL PHP语句正在返回记录中包含的垃圾数据
最近,我在MySQL数据库中新创建的表在SELECT语句中返回“\r\n\r\n”以及存储的数据。我不知道这些垃圾数据来自哪里,因为它在phpMyAdmin中不可见。它只发生在新创建的表中,而不会发生在旧表中 我使用phpMyAdmin创建表,但下面是创建表的确切语句:MySQL PHP语句正在返回记录中包含的垃圾数据,php,mysql,Php,Mysql,最近,我在MySQL数据库中新创建的表在SELECT语句中返回“\r\n\r\n”以及存储的数据。我不知道这些垃圾数据来自哪里,因为它在phpMyAdmin中不可见。它只发生在新创建的表中,而不会发生在旧表中 我使用phpMyAdmin创建表,但下面是创建表的确切语句: CREATE TABLE IF NOT EXISTS `user_analysis` ( `project_ID` int(11) NOT NULL, `uGroupId` int(11) NOT NULL, `us
CREATE TABLE IF NOT EXISTS `user_analysis` (
`project_ID` int(11) NOT NULL,
`uGroupId` int(11) NOT NULL,
`user_address` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`user_strengths` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`user_weaknesses` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表格信息如下所示:
Type: InnoDB
Collation: utf8_general_ci
以下是我提出的问题:
$query = "SELECT user_strengths FROM user_analysis WHERE `project_ID` = ? AND `uGroupId` = ?";
if($stmt = $mysqli->prepare($query)){
$stmt->bind_param("ii", $this->pID, $this->gID);
$stmt->execute();
$stmt->bind_result($strengths);
$stmt->fetch();
echo $strengths;
}
我也试着不使用预先准备好的语句和硬编码查询,但它仍然返回垃圾数据。我试着这样做:
$query = "SELECT user_strengths FROM user_analysis WHERE `project_ID` = '10256' AND `uGroupId` = '10'";
$result = $mysqli->query($query);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
echo "User strengths: " . $row["user_strengths"];
}
我使用了这里的答案作为临时解决方案:
但解决这个问题不是问题。问题是,这不应该发生在一开始。是什么导致MySQL返回这些垃圾数据?同样,从phpMyAdmin看不到垃圾数据。我还尝试直接从phpMyAdmin插入数据,并仔细确保插入的内容中没有“\r\n\r\n\r\n”之类的内容,但它仍然会将垃圾数据与记录一起返回
有什么想法吗?你一直在说“返回垃圾数据”…请准确告诉我们返回的是什么\r\n是新行,通常不应显示。这不是数据库问题。若要查看发生了什么,请尝试将值直接放入变量中,然后检查它们。例如,尝试这样做:
echo'Hello'。PHP_EOL世界",
与存储的数据一起返回\r\n\r\n\r\n数据的开头。它是可见的,因为当我在console.log中记录JSON.stringified数据时,它会出现在那里。例如:如果记录说:“某个用户地址”,它返回“\r\n\r\n\r\n某个用户地址”,如果我对所有列进行JSON编码,它在字符串化时返回如下内容:{”\r\n\r\n\r\n user\u address:\“\Some user\u address\”,“\user\u strength\”:“\Some data\”,“\user\u弱点\”:“\Some data\”,“\”当我转到javascript并尝试使用它时,那些斜杠和换行符会把一切都搞糟。@Christian:嗨,是的,换行符在那样打印时不会出现,但是,换行符仍然存在,而且我从未将它们插入数据库。问题是,如果我对数据进行JSON编码,我就无法将其作为对象访问在javascript中,因为换行符和斜杠把一切都弄乱了。@g_l可能,你的问题是有些PHP脚本要么输出换行符,要么以一个?>
结尾,然后是一堆换行符。