Php 如果值为空/null,则根据其长度将数据库中的值替换为空格

Php 如果值为空/null,则根据其长度将数据库中的值替换为空格,php,Php,情景: Database Table Column Type Length Sample Values emp_code varchar 4 0011 0021 0012 emp_desc varchar 2 01 03 01 emp_stat varchar 1 1 0 问题:

情景:

Database Table 
Column     Type      Length            Sample Values
emp_code   varchar     4            0011      0021    0012
emp_desc   varchar     2            01        03      01
emp_stat   varchar     1            1                 0
问题:

我正在查询,以便将结果写入文本文件

$file = "data.txt";
$f = fopen($file, "a");
$qry = "SELECT * FROM tbl_emp";
$result = mysqli_query($conn, $qry );
if(!$result) {
    echo "Cannot do query" . "<br/>";
exit;
}

$num_results =mysqli_num_rows($result);
for ($i=0; $i<=$num_results; $i++) {
    $row = mysqli_fetch_assoc ($result);
        $emp_code = (empty($row['emp_code']) ? "    " : $row['emp_code']); //replace with 4 spaces
        $emp_desc = (empty($row['emp_desc']) ? "  " : $row['emp_desc ']);  //replace with 2 spaces
        $emp_stat = (empty($row['emp_code']) ? " " : $row['emp_code']);  //replace with 1 space

     $data = "$emp_code $emp_desc $emp_stat\r\n";
     fwrite($f,$data); 
}
但结果是:

0011011
002103 
001201

如果该行的值为0,则在不应为空时将其替换为空。需要更改哪些内容才能获得正确的数据?TIA.

不要使用
空的
<代码>0
为空。根据您在那里检查的内容,它可以是:

$emp_stat = (is_null($row[...]) ? " " : $row[...])
$emp_stat = (($row[...] === "") ? " " : $row[...])
$emp_stat = (is_numeric($row[...])? $row[...] : " ")

etc

不要使用
空的
<代码>0
为空。根据您在那里检查的内容,它可以是:

$emp_stat = (is_null($row[...]) ? " " : $row[...])
$emp_stat = (($row[...] === "") ? " " : $row[...])
$emp_stat = (is_numeric($row[...])? $row[...] : " ")

等等

谢谢。这对我很有帮助,谢谢。这对我很有帮助。