PHP:如何将 mysql TEXT 或 BLOB 类型转换为字符串?

标签 php mysql

我在 PHP 方面有过一次令人沮丧的经历,因为我总是将我的 MEDIUMTEXT 字段作为非字符串字符串返回。当我检查变量的类型时,它说它是一个字符串,但它实际上是一个数组,基本上是一个字符数组,所以我这样做:

while ($row = mysql_fetch_assoc($records)) {
  print_r($row["myText"]);
}

它并没有像“这里是一行”那样打印出存储在那里的实际文本,而是只打印 1。这很令人困惑,因为我问它它的数据类型是什么,它说的是字符串……但是如果我这样做了

$row["myText"][0]

它将返回“h”。我完全不知道如何将这个值更改为字符串,我的意思是我会假设 php 有一些功能,但我找不到它。我也不知道为什么它说它不是数组。

有什么想法吗?

按要求编辑

mysql查询

select * from snippets

一个 print_r: text 是 mysql 中 MEDIUMTEXT 列的名称。其他的不相关

Array ( [index] => 1 [name] => a name [language] => english [text] => ) 1

编辑2:

所有产生这个错误的代码:

$username = "root";
$password = "";
$hostname = "localhost"; 
$dbname = "TestSnippets";

$dbh = mysql_connect($hostname, $username, $password) 
$selected = mysql_select_db("snippets",$dbh); 

$records = mysql_query("select * from snippets");

while ($row = mysql_fetch_assoc($records)) {
   echo print_r($row);
}

这每次都会产生错误。所有其他领域都很好。但是,不是 MEDIUMTEXT 字段。

编辑3:

我尝试安装一个新的网络服务器 (Apache) 和一个新版本的 PHP,但它仍然有同样的问题。有趣的是,当我调用 php-cgi.exe 时,它​​会返回正确输出该变量的数据。我对它可能是什么一无所知,唯一的另一个是我可以安装不同版本的 mysql。我明天会尝试并报告。

edit4:我自己解决了这个问题,同时牢记这里告诉我的内容。请参阅下面我对自己问题的回答。

最佳答案

你应该简单地使用...

while ($row = mysql_fetch_assoc($records)) {
  echo $row["text"];
}

...只要“文本”是您正在使用的表格中的适当字段。就 PHP(一种非类型化语言)而言,您使用的是中等文本这一事实无关紧要。

如果这不起作用,那么听起来问题出在其他地方。

关于PHP:如何将 mysql TEXT 或 BLOB 类型转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2078176/

相关文章:

php - Codeigniter $this->input->post 始终为 FALSE

php - 这是进行实时聊天的最有效方式吗?

MySQL 加入未产生预期的结果

mysql - StringBuilder() 在最后一次迭代时附加交易 ID

php - 在 Symfony 2 中轻松配置 SwiftMailer "Local Domain"设置

php - bind_param() i 或 s 的 mysqli 值是多少

php - Laravel 按月分组并求和总计

PHP Fetch - 不返回所有行进行数组检查

mysql - 使用 MySQL 时在 SQL Developer 中禁用自动提交

C# 和 MySql 更改列变量