3

こんにちは私はSQLクエリ(1行のみを返す)を実行していて、テスト目的で特定の列を画面に印刷しています。私が抱えている問題は、印刷している列に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);
4

3 に答える 3

2

どこに書いてあると思いますstring(12) ""か?常に生の出力を確認することを忘れないでください。ソースコード。ブラウザがそれをどのようにレンダリングするかではありません。

たとえば、文字列がの場合、<span></span>それは何も表示されません。

于 2012-11-27T22:10:24.990 に答える
1

ほとんどの場合、ブラウザによってレンダリングされているhtmlタグが文字列に含まれています。

$foo = "<p><img><div><table>";
var_dump($foo); // string(20) ""
于 2012-11-27T22:09:29.913 に答える
1
  1. 追加header('Content-Type: text/plain')して、ページをHTMLではなくテキストとしてレンダリングしてみてください。または、「ソースの表示」を使用して、レンダリングされたページの代わりにHTMLソースを表示します。文字列に非表示のHTMLタグが含まれている可能性があります。

  2. 試してみてください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"
    
于 2012-11-27T22:11:27.930 に答える