MySQL PHP语句返回记录中包含的垃圾数据

时间:2015-06-14 07:19:24

标签: php mysql

最近我在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 "在我插入的内容中,但它仍然会将垃圾数据与记录一起返回。

有什么想法吗?

0 个答案:

没有答案