2013-02-26 2 views
0

로컬로 작동하는 다음 쿼리가 있는데 원격 서버에서 경고가 표시됩니다. mysqli_result 할 mysqli_fetch_assoc() 예상 매개 변수 1에서 주어진 부울 ...Mysqli가 원격 서버에서 경고를 받지만 로컬로 작동합니다.

그것의 처음 난 Mysqli 대신 MySQL을 사용 :

$query_getMainPage = $conCreative->query("SELECT l.*, p.* FROM languagep l INNER JOIN pages p ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0"); 
$row_getMainPage = mysqli_fetch_assoc($query_getMainPage); 
$totalRows_getMainPage = mysqli_num_rows($query_getMainPage); 

내가 얻을 경고는

경고입니다 그래서 나는 내가 함수를 사용하는 방식에 뭔가 잘못된 것을하고 있다고 생각한다.

+0

'$ row_getMainPage'가 단순히'var_dump()'로 반환하는 것을보십시오. – Aborted

+0

코드에 오류가있을 수 있습니다. 이것 좀보세요. 희망이 도움이됩니다. http://stackoverflow.com/questions/13247702/code-works-fine-on-localhost-but-not-on-remote-server – Kibz

답변

0

물론 다른 서버에서 작동하는 것처럼 뭔가 잘못하지는 않습니다.
오류의 원인이되는 원격 서버 환경입니다.

그러나 mysql 또는 mysqli를 사용하든간에해야 할 일이 있습니다. 쿼리 결과를 확인하고 오류를 처리해야합니다.
은 적어도이 방법을 수행

$sql = "SELECT count(*) FROM languagep l INNER JOIN pages p 
     ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0"; 
$res = $con->query($sql) or trigger_error($con->error."[$sql]"); 
  • 그래서, 당신은 MySQL의 오류로 알려 드리겠습니다을하고 적절한 조치를 취할 수 있습니다.

그러나 코드에 또 다른 문제가 있습니다 (mysqli).
mysqli를 사용하지 마십시오. 대신 PDO을 사용하십시오.
앞으로 많은 두통을 덜어 줄 것입니다.

PDO는 쿼리를 실행하는 데 사용할 연결

$dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; 
$opt = array(
    PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
); 
$pdo = new PDO($dsn, $user, $pass, $opt); 

를 작성,

먼저 사용할하면서도 강력한 간단합니다 : 당신은 단지 계산하지만 필요한 경우

$sql = "SELECT count(*) FROM languagep l INNER JOIN pages p 
     ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0"; 
$sth = $pdo->prepare($sql); 
$sth->execute(); 
$totalRows = $sth->fetchColumn(); 

을 모든 데이터 :

$sql = "SELECT * FROM languagep l INNER JOIN pages p 
     ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0"; 
$sth = $pdo->prepare($sql); 
$sth->execute(); 
$data = $sth->fetchAll(); 
$totalRows = count($data); 
+0

정말 고마워요. 매우 도움이된다. – Neos

관련 문제