我对一些MySQLi准备好的语句有一点问题,这些语句让我发现"命令不同步错误",这非常烦人。我在这个论坛上读过关于使用
的内容$stmt->free_result();
$stmt->close();
或
$db->next_result();
但他们中没有人为我工作过,这是我迄今为止所尝试过的。这些是3个函数,它们将数据库的结果发送给其他人,最后发送邮件
function getTable($id) {
global $src;
$s="SELECT TEMA FROM lp_tavolo WHERE ID=?";
$q=$src->prepare($s) or die ($src->error);
$q->bind_param('s',$id);
$q->execute();
$q->store_result();
$q->bind_result($t);
while($q->fetch()) {
$q->close();
$src->next_result();
return $t;
}
}
function getID($m) {
global $src;
$s="SELECT ID FROM lp_partecipante WHERE EMAIL=?";
$q=$src->prepare($s) or die ($src->error);
$q->bind_param('s',$m);
$q->execute();
$q->store_result();
$q->bind_result($id);
while($q->fetch()) {
$q->close();
$src->next_result();
return $id;
}
}
function getExternalID($m) {
global $src;
$s="SELECT ID_TAVOLO FROM lp_partecipante WHERE EMAIL=?";
$q=$src->prepare($s) or die ($src->error);
$q->bind_param('s',$m);
$q->execute();
$q->store_result();
$q->bind_result($id);
while($q->fetch()) {
$q->close();
$src->next_result();
return $id;
}
}
function sendCredentials($name,$mail,$code) {
$table=getTable(getExternalID($mail));
}
问题在于,当我在getTable
函数结果上调用getExternalID
函数时,我得到的是"不同步错误"。我该怎么办?