2016-03-20 29 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); 

     } 

?> 

我有错误=>致命错误:调用一个成员函数查询()非对象上在C:\ XAMPP \ htdocs中\用户\ File.php上线
呼叫一个成员函数查询()非对象上

请帮我提前

+0

如果你使用'sqlsrv_query'功能,同时传递'$ conn'并在“连接建立”条件块一个简单的测试查询吗? http://php.net/manual/en/function.sqlsrv-query.php –

回答

0

解决this..thanks尝试连接这样:

<?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

对不起,但经过纠正一些事情后我得到=> mysqli :: mysqli():(HY000/2002):无法建立连接,因为目标机器积极拒绝它。 in C:\ xampp \ htdocs \ user \ user1.php on line
ROCK

0

sqlsrv_connect()不会返回一个对象,而是一个资源。

您需要致电sqlsrv_query()并将$conn资源作为第一个参数,将查询作为第二个参数传递。

所有PHP sqlsrv函数的文档here

相关问题