2016-03-20 13 views
2
<?php  
$serverName = "servername"; 
$connectionInfo = array("Database"=>"DB", "UID"=>"user1", "PWD"=>"[email protected]"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
if($conn) { 
    echo "Connection established.<br />"; 
} 
else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
$sql = "SELECT 
     COUNT(CASE WHEN online = 'Yes' THEN city END) AS o_total, 
     COUNT(CASE WHEN online = 'No' THEN city END) AS o_offline, 
     COUNT(*) as t_total, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name1' THEN city END) AS o_Name1, 
     COUNT(CASE WHEN channel='Name1' THEN city END) AS t_Name1, 
     COUNT(CASE WHEN online = 'YES' AND channel='Name2' THEN city END) AS o_Name2, 
     COUNT(CASE WHEN channel='Name2' THEN city END) AS t_Name2, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name3' THEN city END) AS o_Name3, 
     COUNT(CASE WHEN channel='Name3' THEN city END) AS t_Name3, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name4' THEN city END) AS o_Name4, 
     COUNT(CASE WHEN channel='Name4' THEN city END) AS t_Name4, 
     city FROM wmm group by city"; 
     $result = $conn->query($sql); 

     $array = new stdClass(); 
     if ($result->num_rows > 0) { 
      while($row = sqlsrv_fetch_assoc($result)) { 
       $array->$row['city'] = $row; 
      } 
      echo json_encode($array); 

     } 

?> 

Ich habe error =>Fatal error: Aufruf an eine Elementfunktion query() auf einem Nicht-Objekt in C: \ xampp \ htdocs \ Benutzer \ file.php on line
Aufruf an eine Elementfunktion query() auf einem Nicht-Objekt

Bitte helfen Sie mir this..thanks im Voraus zu lösen

+0

Was passiert, wenn Sie verwenden, um die 'sqlsrv_query' Funktion, beide' $ conn' und einen einfachen Test Abfrage direkt in Ihrem „Verbindung hergestellt“ conditional Block vorbei? http://php.net/manual/en/function.sqlsrv-query.php –

Antwort

0

versuchen, die Verbindung auf diese Weise:

<?php  
$dbservername= "servername"; 
$dbusername="user1"; 
$dbpassword="[email protected]"; 
$dbname="DB"; 
$conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname); 
if($conn->connect_error) { 
    echo "Connection could not be established.<br />"; 
    die(print_r($conn->connect_error, true)); 
} 
else{ 
    echo "Connection established.<br />"; 

     $sql = "SELECT 
     COUNT(CASE WHEN online = 'Yes' THEN city END) AS o_total, 
     COUNT(CASE WHEN online = 'No' THEN city END) AS o_offline, 
     COUNT(*) as t_total, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name1' THEN city END) AS o_Name1, 
     COUNT(CASE WHEN channel='Name1' THEN city END) AS t_Name1, 
     COUNT(CASE WHEN online = 'YES' AND channel='Name2' THEN city END) AS o_Name2, 
     COUNT(CASE WHEN channel='Name2' THEN city END) AS t_Name2, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name3' THEN city END) AS o_Name3, 
     COUNT(CASE WHEN channel='Name3' THEN city END) AS t_Name3, 
     COUNT(CASE WHEN online = 'Yes' AND channel='Name4' THEN city END) AS o_Name4, 
     COUNT(CASE WHEN channel='Name4' THEN city END) AS t_Name4, 
     city FROM wmm group by city"; 
     $result = $conn->query($sql); 

     $array = new stdClass(); 
     if ($result->num_rows > 0) { 
      while($row = sqlsrv_fetch_assoc($result)) { 
       $array->$row['city'] = $row; 
      } 
      echo json_encode($array); 

     } 
} 


?> 
+0

Tut mir leid, aber nachdem ich einige Dinge korrigiert habe, bekomme ich => mysqli :: mysqli(): (HY000/2002): Da konnte keine Verbindung hergestellt werden Die Zielmaschine lehnte dies aktiv ab. in C: \ xampp \ htdocs \ Benutzer \ Benutzer1.php on line
ROCK

0

sqlsrv_connect() gibt kein Objekt, sondern eine Ressource zurück.

Sie müssen sqlsrv_query() aufrufen und die Ressource $conn als ersten Parameter und Ihre Abfrage als zweite übergeben.

die PHP Alle sqlsrv Funktionen here dokumentiert

Verwandte Themen