Использование mysqli_multi_query в существующей функции - PullRequest
0 голосов
/ 16 июня 2019

У меня есть функция, которая может создавать различные типы соединений с базой данных, и, упрощенно ниже с двумя такими значениями $ ActionType, это вторая проблема, с которой у меня возникают трудности.Нет ошибок, но нет результатов.Любые идеи?

Запрос содержит несколько запросов, таких как:

$Query = "SQL statement #1;";
$Query .= "SQL statement #2;";
$Query .= "SQL statement #3;";

, и это функция, сокращенная, чтобы соответствовать здесь:

function DBConnect($Query, $ActionType, $DBname, $selType='array') {
    $ActionType = trim(strtolower($ActionType));

    if (!$Query) :
        exit();
    endif;

    $MySQLError = "";
    $mysqli = dbConn($DBname);

    if ($Query && $mysqli->connect_errno != 0):
        $MySQLError = "<div class=\"ErrorMessage\">";
        $MySQLError .= printf("Connect failed: %s\n", $mysqli->connect_error);
        $MySQLError .= "</div>\n\n";
        return $MySQLError;
        exit();
    endif;

    switch ($ActionType) :
        case "multiple":
            if ($result = $mysqli->query($Query)) :
                $numrowsCat = $result->num_rows;
                if ($numrowsCat >= 1) :
                    $result = $mysqli->query($Query);
                    if ($selType === "assoc") :
                        while($row = $result->fetch_assoc()) :
                            $results_array[] = $row;
                        endwhile;
                    else :                  
                        while($row = $result->fetch_array()) :
                            $results_array[] = $row;
                        endwhile;
                    endif;
                    return $results_array;
                endif;
                $MySQLError = ($mysqli->connect_errno) ? mysqli_error($mysqli) : "";
                $mysqli->close();
                if ($MySQLError) return $MySQLError;
            endif;
        break;

        case "multiquery":
            if ($result = $mysqli->multi_query($Query)) :
                if ($result) :
                    while($row = $result->fetch_array()) :
                        $results_array[] = $row;
                    endwhile;
                    return $results_array;
                endif;

                $MySQLError = ($mysqli->connect_errno) ? mysqli_error($mysqli) : "";
                $mysqli->close();
                if ($MySQLError) return $MySQLError;
            endif;
        break;

    endswitch;
}
...