最近我在MySQL数据库中创建的新表正在返回" \ r \ n \ r \ n \ r \ n "在我的SELECT语句和存储的数据上。我不知道这个垃圾数据的来源,因为它在phpMyAdmin中不可见。它只发生在新创建的表中,它不会发生在旧表中。
我使用phpMyAdmin创建表,但这是创建它的确切语句:
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"];
}
我使用此处找到的答案作为临时修复:Replacing \r\n with PHP
但解决这个问题不是问题。问题是这不应该开始。什么可能导致MySQL返回这个垃圾数据?同样,从phpMyAdmin看不到垃圾数据。我也尝试直接从phpMyAdmin插入数据,并仔细确保没有" \ r \ n \ r \ n \ r \ n "在我插入的内容中,但它仍然会将垃圾数据与记录一起返回。
有什么想法吗?