2016-11-20 106 views
0

這個查詢是由wordnet本身提供的,用於從名爲dict的視圖中檢索詞信息,如定義,例子等。它工作正常一個月,但現在它停止工作。 旁邊,這個查詢在phpMyadmin中正常工作!在WordNet數據庫上的mysql查詢工作正常,只是停止工作

if ($stmt = $link->prepare("SELECT lemma,pos,sensenum,synsetid,definition ,sampleset FROM dict WHERE lemma = ? ORDER BY pos,sensenum")) 
{ 
    $stmt->bind_param("s",$Vocab); 
    $stmt->execute(); 
    $stmt->bind_result($Lemma, $Pos, $Sensenum, $synsetid, $Def1, $Def2); 
    while($stmt->fetch()) 
    { 
     $output[]=array("Pos"=>$Pos,"Sensenum"=>$Sensenum,"Def1"=>$Def1,"Def2"=>$Def2, "pDef"=>''); 
    } 
    echo "@@*@@"; 
    print json_encode($output); 
    $stmt->close(); 
} 
+0

任何錯誤?它打印'echo'內容是什麼?是否有可能,這只不過是返回零行,因爲'where子句'不匹配?打印'$ stmt-> execute()'的返回值。嘗試使用'var_dump($ output)'傾銷'$ output'數組。 – blackpen

+0

DId the $ stmt->執行( )'返回TRUE? var_dump($ output)'打印了什麼?您可以在while循環之後立即放置它。 – blackpen

+0

結果是@@ * @@ NULL 同樣的查詢在phpMyAdmin結果很多行! – behruz

回答

0

在每個方法/函數調用和打印mysqli_connect_errno()mysqli_connect_error()mysqli_stmt_errno($stmt)在相關地方檢查返回值來檢查錯誤。

數據庫名稱在配置中可能已更改。用戶/密碼可能已經改變(如果你認爲他們是正確的,然後運行一個假的查詢,如select now() as c1,看看是否有效

如果啞查詢工作,運行原始查詢,但通過刪除where子句,和通過limit 10子句限制的行。

而且,如果你想通了,這裏補充一點信息,未來的讀者。