2016-09-23 57 views
0

我目前使用PHP来连接我的ms sql数据库中的表出现在我的网页上。然而,表中出现即时通讯问题与我的sql表中的空日期字段。无法回复日期空字段

该表是车辆维修车库。

create table [VEHICLE_STATUS](
[STATUS_ID] [int] identity (1,1) not null, 
[VEHICLE_ID] [INT] not null, 
[REPAIR_START_DATE] [DATE] not null, 
[REPAIR_END_DATE] [DATE] not null, 
[DESCRIPTION] [nvarchar] (200) not null 
); 

但是并非所有车辆都在维修,因此没有维修开始或结束日期。

我试图改变日期字段更改为“可用”,而不是空

,来了就是错误;检查

Fatal error: Call to a member function format() on null in C:\xampp\htdocs\view.php on line 57

<?php 
      $server = "\SQLEXPRESS"; 
     $options = array("Database"=>"test"); 


     $conn = sqlsrv_connect($server, $options); 


     if(!$conn) die(print_r(sqlsrv_errors(), true)); 

$query = "select * from VW_VEHICLE_STATUS"; 
$sql = sqlsrv_query($conn, $query); 


      echo "<table >"; 
      echo "<tr>"; 
      echo "<td style='border:1px solid black;Font-size=18;Font-weight=bold'>"; 
      echo "MAKE"; 
      echo "</td>"; 
      echo "<td style='border:1px solid black;Font-size=18;Font-Weight=bold'>"; 
      echo "MODEL"; 
      echo "</td>"; 
      echo "<td style='border:1px solid black;Font-size=18;Font-Weight=bold'>"; 
      echo "REGISTRATION"; 
      echo "</td>"; 
       echo "<td style='border:1px solid black;Font-size=18;Font-Weight=bold'>"; 
      echo "REPAIR_START_DATE"; 
      echo "</td>"; 
       echo "<td style='border:1px solid black;Font-size=18;Font-Weight=bold'>"; 
      echo "REPAIR_END_DATE"; 
      echo "</td>"; 
       echo "<td style='border:1px solid black;Font-size=18;Font-Weight=bold'>"; 
      echo "DESCRIPTION"; 
      echo "</td>"; 
      echo "</tr>\n"; 

      while ($row = sqlsrv_fetch_array($sql)) 
      { 
       echo "<tr>"; 
       echo "<td style='border:1px solid black'>"; 
       echo $row['MAKE']; 
       echo "</td>"; 
       echo "<td style='border:1px solid black'>"; 
       echo $row['MODEL']; 
       echo "</td>"; 
       echo "<td style='border:1px solid black'>"; 
       echo $row['REGISTRATION']; 
       echo "</td>"; 
        echo "<td style='border:1px solid black'>"; 
       echo $row['REPAIR_START_DATE']->format("Y-M-d"); 
       echo "</td>"; 
        echo "<td style='border:1px solid black'>"; 
       echo $row['REPAIR_END_DATE']->format("Y-M-d"); ; 
       echo "</td>"; 
        echo "<td style='border:1px solid black'>"; 
       echo $row['DESCRIPTION']; 
       echo "</td>"; 
       echo "</tr>\n"; 
      } 
      echo "</table>"; 

      sqlsrv_close($conn); 
      ?> 
+2

当您的错误消息是PHP错误时,显示某些sql的意义何在? “嘿,医生,我摔断了腿,它到处都是血和骨碎片,下面是我的车的图片,所以你可以弄清楚如何修理我” –

+0

@ Jane - 你需要考虑在你的PHP代码中显示错误并将其标记为PHP以获得更好的响应 – techspider

+0

在使用日期列的格式之前,最可能发生的问题可能不是检查空值 – techspider

回答

0

尝试,如果该值是的DateTime的实例调用格式方法就可以了。

echo $row['REPAIR_END_DATE'] instanceof DateTime ? $row['REPAIR_END_DATE']->format('Y-m-d') : ''; 
+0

工作的尼克非常感谢您的帮助! – Jane