我在PHP中遇到了令人沮丧的经历,因为我一直让我的MEDIUMTEXT字段作为非字符串字符串返回。当我检查变量的类型,它说这是一个字符串,但它实际上是一个数组,基本上是一个字符数组,所以我做的:PHP:如何将一个mysql TEXT或BLOB类型转换为字符串?
while ($row = mysql_fetch_assoc($records)) {
print_r($row["myText"]);
}
哪个不是打印出存储有喜欢的实际文本“这里是一个行” ,它只是打印1.这是令人困惑,因为我问这是什么感觉它的数据类型和它说串......但是,如果我这样做
$row["myText"][0]
它会返回“H”。我完全失去了如何将此值更改为字符串,我的意思是我会认为php有一些功能,但我找不到它。我也不知道它为什么说它不是一个数组。
任何想法?
编辑按要求
MySQL查询
select * from snippets
一的print_r: 文本是在MySQL中MEDIUMTEXT列的名称。其他人都没有关系
Array ([index] => 1 [name] => a name [language] => english [text] =>) 1
EDIT2:
所有生成此错误代码:
$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字段。
EDIT3:
我试图安装一个新的网络服务器(Apache的)和PHP的新版本,但它仍然有同样的问题。有趣的是,当我调用php-cgi.exe时,它会返回正确输出该变量的数据。我不知道它可能是什么,唯一的另外一点是我可以安装不同版本的mysql。我明天再试,然后回报。
edit4:我自己解决了这个问题,牢记我在这里被告知了什么。请参阅我的回答以下我自己的问题。
如果你echo $ row [“myText”]'会发生什么? – 2010-01-16 17:01:12
你能为我们打印完整的'$ row'吗? – 2010-01-16 17:02:05
你能用SQL查询和print_r($ row)的完整结果更新你的问题吗? – 2010-01-16 17:04:27