私の Debian ボックスでのPHP5 5.4.0-3への最後の更新以来、MySQL データベースからのテキストがあるはずの空のフィールドがいくつかのページにあることに気付きました。
少し遊んで問題を見つけました。
<?php
$scselect = mysql_query("SELECT `name` FROM `forum_threads` WHERE `forum` = '1' ORDER BY `timestamp` DESC") or exit((mysql_error()));
while ($scrow=mysql_fetch_array($scselect))
{
var_dump($scrow['name']);
var_dump(htmlentities($scrow['name']));
}
?>
奇妙なことに、これは印刷されたものです:
string(18) "php hu3: the Forum"
string(0) ""
string(18) "php hu2 score-rule"
string(0) ""
string(6) "php hu"
string(0) ""
string(15) "HU 8: Binarycnt"
string(0) ""
しかし、ハードコードされたコンテンツで htmlentities を使用する場合 -> htmlentities("test"); それは魅力のように機能します。また、私がこれを行う場合:
var_dump("a".$scrow['name']);
それはまた言います
string(0) ""
しかし、それは奇妙になります。データベースの他の変数とともに htmlentities または htmlspecialchars を使用すると、完全に機能します。
var_dump(htmlspecialchars($scrow['ID'])); // prints for example string(2) "87"
これの原因は何ですか?