2016-09-23 53 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