Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
MySQL PHP语句正在返回记录中包含的垃圾数据_Php_Mysql - Fatal编程技术网

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

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

最近,我在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,
  `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脚本要么输出换行符,要么以一个
?>
结尾,然后是一堆换行符。