2016-09-23 18 views
0

私は現在、私のWebページに表示するために、私のMS SQLデータベースのテーブルを接続するためにPHPを使用しています。しかし、テーブルは、私のSQLテーブルでnullの日付フィールドに問題があります。カントエコー日付nullフィールド

この表は車両のガレージ修理です。

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にタグを付ける – techspider

+0

日付カラムのフォーマットを使用する前に、最も可能性のある問題がNULLをチェックしていない可能性があります – techspider

答えて

0

値がそれに形式メソッドを呼び出す前のDateTimeのインスタンスであるかどうかを確認してください。

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

Nickが働いてくれてありがとうございます。 – Jane

関連する問題