2015-09-27 89 views
1

我想运行一个PHP脚本,使用mysqli库,但它没有取得webhosting服务器上的结果,而在我的机器运行WLAMP PHP 5.14它运作良好。mysqli查询获取没有记录

你可以告诉我,如果问题是与mysqli有关,如果有办法让它为我的案件工作?

我希望做的工作看起来像这样的台词:

$sql = "call sp_give_me_data(null,null,null);"; 

if (!$mysqli->query($sql)) { 
    die('Invalid query: ' . mysql_error()); 
} else { 

    $result = $mysqli->query($sql); 

    if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     $datainfo[] = $row; 
    } 
    $output = json_encode($datainfo); 
    echo utf8_encode($output);  
    } else { 
    echo "0"; 
    } 

} 

正如我所说的它提取到支持PHP 5.3-5.5托管“0”的记录,并获取正确的记录数量上我的机器。与远程数据库的连接(在两种情况下都是相同的)似乎也很成功。

感谢您的洞察力。

更新

我所以现在改变了我的代码,我将查询发送只有一次:

mysqli_set_charset($mysqli,"utf8"); //utf-8 accents query 
$result = $mysqli->query($sql);  

if (!$result) {  
    die('Invalid query: ' . mysql_error()); 
} else { 

    if ($result->num_rows > 0) {    
     while($row = $result->fetch_assoc()) {    
      $datainfo[] = $row; 
     } 
     //utf-8 accents unescaping to be shown correctly 
     $output = json_encode($datainfo,JSON_UNESCAPED_UNICODE); 
     echo $output;      

    } else { 
     echo "0"; 
    }  
} 

这就是现在的工作。谢谢!

+1

你为什么将查询发送两次? – VolkerK

+1

此外,如果出现问题,您正在使用'mysql_error()';你应该使用'$ mysqli-> error'代替,我认为 – andrewsi

+0

@VolkerK,你给了我一个线索,为什么它不工作我改变了我的代码,如编辑,现在工作。如果你能告诉我为什么在PHP 5.3-5.5原来的查询不能正常工作,那会很好吗? 把你的评论作为答案,我会给你正确的答案选择。谢谢。 – CoderRoller

回答

0

随着@VolkerK的建议不empry,这个工程现在:

mysqli_set_charset($mysqli,"utf8"); //utf-8 accents query 
$result = $mysqli->query($sql);  

if (!$result) {  
    die('Invalid query: ' . mysql_error()); 
} else { 

    if ($result->num_rows > 0) {    
     while($row = $result->fetch_assoc()) {    
      $datainfo[] = $row; 
     } 
     //utf-8 accents unescaping to be shown correctly 
     $output = json_encode($datainfo,JSON_UNESCAPED_UNICODE); 
     echo $output;      

    } else { 
     echo "0"; 
    }  
} 
1

你的表是在远程服务器空和当地