您好我正在执行一个SQL查询(只返回一行),我正在屏幕上打印一个特定列,仅用于测试目的。我遇到的问题是,我打印的列包含一个12个字符的字符串(abcdef123456),但有时打印的变量是空的。
所以当我做var_dump($test);
有时我会:
string(12) "abcdef123456"
但有些时候我会
string(12) ""
我不明白为什么它知道有12个字符但它仍然是空的,有时它会说12个字符但它已经满了。因此,我不能执行其他功能,因为他们依赖于字符串。
编辑:这是查询
$query="SELECT * FROM members WHERE name='$member'";
$sqlResult=mysql_query($query);
$row = mysql_fetch_assoc($sqlResult);
$test = $row["membercode"];
var_dump($test);
答案 0 :(得分:2)
你在哪里看到string(12) ""
?记住要始终查看原始输出;源代码。不是浏览器如何呈现它。
例如,如果字符串为<span></span>
,那么它将显示为无效。
答案 1 :(得分:1)
您最有可能在字符串中使用由浏览器呈现的html标记。
$foo = "<p><img><div><table>";
var_dump($foo); // string(20) ""
答案 2 :(得分:1)
尝试添加header('Content-Type: text/plain')
以将文字呈现为文字而非HTML。或使用“查看源”查看HTML源代码而不是呈现的页面。字符串中可能隐藏着HTML标记。
试试var_dump(bin2hex($test))
。可能存在您无法看到的"\0"
等隐形控制字符。例如:
$ php <<< '<?php var_dump("\0\0\0\0"); ?>'
string(4) ""
$ php <<< '<?php var_dump(bin2hex("\0\0\0\0")); ?>'
string(8) "00000000"