Php Mysqli准备的语句命令不同步错误

Php Mysqli准备的语句命令不同步错误,php,mysqli,Php,Mysqli,我对一些MySQLi编写的语句有点小问题,这些语句会使我产生“命令不同步错误”,这很烦人。我在这个论坛上读到了关于使用 $stmt->free_result(); $stmt->close(); 或 但没有人为我工作过,这是我迄今为止一直在尝试的。这三个函数将数据库结果发送给其他人,最终发送邮件 function getTable($id) { global $src; $s="SELECT TEMA FROM lp_tavolo WHERE ID=?";

我对一些MySQLi编写的语句有点小问题,这些语句会使我产生“命令不同步错误”,这很烦人。我在这个论坛上读到了关于使用

$stmt->free_result();
$stmt->close();

但没有人为我工作过,这是我迄今为止一直在尝试的。这三个函数将数据库结果发送给其他人,最终发送邮件

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));
}

问题是,当我对
getExternalID
函数结果调用
getTable
函数时,我得到的只是一个“不同步错误”。我该怎么办?

首先,为什么要使用,而如果返回第一行值,为什么不直接获取该行?如果没有结果呢。然后没有返回值。如果方法有返回值,您应该总是返回一些东西,例如false,然后您需要检查。我知道,这是一种实验性的,在我运行的版本中,我实际上使用了行提取。但是,这些函数意味着只有在前面的函数工作时才执行,因此,如果它们正在运行,则意味着应该始终有一个值要返回。顺便说一句,谢谢你的提示,我很感激:)
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));
}