2016-11-20 105 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子句限制的行。

而且,如果你想通了,这里补充一点信息,未来的读者。