2016-09-23 2 views
0

Ich verwende derzeit PHP, um die Tabellen in meiner ms SQL-Datenbank zu verbinden, um auf meiner Webseite zu erscheinen. Die Tabelle erscheint jedoch Probleme mit den Datumsfeldern, die in meiner SQL-Tabelle null sind.Cant Echo Datum null Feld

Der Tisch ist eine Werkstatt Reparatur für Fahrzeuge.

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 
); 

Allerdings sind nicht alle Fahrzeuge zur Reparatur da und haben keine Reparatur Start- oder Enddaten.

Ich habe versucht, die Datumsfelder ändern „verfügbar“ statt null

Der Fehler, der bis zu ändern, ist kommt;

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

Was ist der Punkt, einige SQL anzuzeigen, wenn Ihre Fehlermeldung ein PHP-Fehler ist? "Hey Doktor, ich habe mir das Bein gebrochen und es spritzt überall Blut und Knochensplitter. Hier ist ein Bild von meinem Auto, damit du herausfinden kannst, wie ich es beheben kann" –

+0

@ Jane - du solltest deinen PHP-Code in der Zeile in der Fehler und tag es PHP für bessere Antworten – techspider

+0

Das möglichste Problem möglicherweise nicht-Überprüfung auf Nullen, bevor Sie Format der Datumsspalte verwenden – techspider

Antwort

0

Versuchen zu überprüfen, ob der Wert eine Instanz Datetime ist bevor auf sie Format Methode aufrufen.

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

Nick, der arbeitete, vielen Dank für Ihre Hilfe! – Jane