1

PHP を使用して安全に出力したい MySQL の結果があります。つまり、 などの特殊文字を変換<&lt;ます。

filter_var_array は、NULL値が空の文字列に変わることを除いて、正常に機能します''

MySQLの値を反映してテストするために、それらをNULLにしたいis_null().

$sql_rows = filter_var_array($sql_rows, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
foreach ($sql_rows as $sql_row) {
    print '<li>' . $sql_row['name'] . '</li>';
}

これを達成する便利な方法はありますか?

4

2 に答える 2

1

私の経験では、MySQLからNULL値が選択されると、PHPはそれを空白文字として解釈します。各行を1つのループで処理して出力するだけです。各値に何が起こっているかをより細かく制御でき、より効率的になります。

foreach($sql_rows as $sql_row)
{
    $output = "<li>";

    if(!empty($sql_row['name']))
    {
        $output .= htmlspecialchars($sql_row['name'], ENT_QUOTES);
    }
    else
    {
        $output .= "<strong>NULL</strong>";
    }

    $output .= "</li>";

    echo $output;
}
于 2012-07-15T22:55:10.693 に答える
1
$sql_rows = array_map(function($val){
    return is_null($val) ? null : filter_var($val, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
}, $sql_rows);
于 2012-07-15T23:09:33.027 に答える