在WordNet数据库上的mysql查询工作正常,只是停止工作
问题描述:
这个查询是由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();
}
答
在每个方法/函数调用和打印mysqli_connect_errno()
,mysqli_connect_error()
和mysqli_stmt_errno($stmt)
在相关地方检查返回值来检查错误。
数据库名称在配置中可能已更改。用户/密码可能已经改变(如果你认为他们是正确的,然后运行一个假的查询,如select now() as c1
,看看是否有效
如果哑查询工作,运行原始查询,但通过删除where子句,和通过limit 10
子句限制的行。
而且,如果你想通了,这里补充一点信息,未来的读者。
任何错误?它打印'echo'内容是什么?是否有可能,这只不过是返回零行,因为'where子句'不匹配?打印'$ stmt-> execute()'的返回值。尝试使用'var_dump($ output)'倾销'$ output'数组。 – blackpen
DId the $ stmt->执行( )'返回TRUE? var_dump($ output)'打印了什么?您可以在while循环之后立即放置它。 – blackpen
结果是@@ * @@ NULL 同样的查询在phpMyAdmin结果很多行! – behruz