当前位置: 首页 > 知识库问答 >
问题:

两个mysqli查询,一个在while循环中

郎意
2023-03-14

无法找到这个问题的答案。我有一个mysqli循环语句。在这个循环中,我想运行另一个查询。我不能同时编写这两个sql。可能吗?我想,因为我使用stmt并设置它来准备语句。所以我添加了另一个变量stmt2。单独运行它们是可行的,但像我写的那样运行它会给我“mysqli致命错误:对非对象调用成员函数bind_param()”

伪代码:

loop_sql_Statement {
    loop_another_sql_statement(variable_from_firsT_select) {
       echo "$first_statement_variables    $second_statemenet_variables";
    }
}
                $sql = "select dyr_id, dyr_navn, type_navn, dyr_rase_id, dyr_fodt_aar, dyr_kommentar, dyr_opprettet, dyr_endret
                    from dyr_opphald, dyr, dyr_typer
                    where dyropphald_dyr_id = dyr_id
                    and dyr_type_id = type_id
                    and dyropphald_opphald_id = ?";

            $stmt = $mysqli->prepare($sql);
            $stmt->bind_param("i",
             $p_opphald_id);
            $stmt->execute(); 

            $stmt->bind_result($dyr_id, $dyr_navn, $type_navn, $dyr_rase_id, $dyr_fodt_aar, $dyr_kommentar, $dyr_opprettet, $dyr_endret);

            echo "<table>";
            while($stmt->fetch()) {
                echo "<tr><td>$dyr_navn</td><td>$type_navn</td><td>$dyr_rase_id</td><td>$dyr_fodt_aar</td><td>";

                $sql2 = "select ekstra_ledetekst, ekstradyr_ekstra_verdi from dyr_ekstrainfo, ekstrainfo where ekstradyr_ekstra_id = ekstra_id and ekstradyr_dyr_id = ?";
                try {

                    $stmt2 = $mysqli->prepare($sql2);
                    $stmt2->bind_param("i",
                     $dyr_id);
                    $stmt2->execute(); 

                    $stmt2->bind_result($ekstra_ledetekst, $ekstra_ledetekst);
                    echo "<td>";
                    while($stmt2->fetch()) {
                        echo "$ekstra_ledetekst => $ekstra_ledetekst<br>";
                    }
                }catch (Exception $e) {}
                echo "</td></tr>";
            }
            echo "</table>";

答案是:

我真傻,我不知道我必须有两个mysqli连接。所以解决方案是声明另一个mysqli连接。

$mysqli = new mysqli($start, $name, $pwd, $selected_db);
$mysqli2 = new mysqli($start, $name, $pwd, $selected_db);

共有1个答案

穆锋
2023-03-14

您应该能够做到这一点,尽管您必须启动第二个连接。

 类似资料:
  • 我的程序中有两个while循环。第一个是针对游戏菜单的,第二个是针对实际游戏的。如果“Gameover-Event”发生,我想返回菜单。我不知道该怎么做。

  • 问题内容: 当photoId直接在语句上而不是变量时,以下代码完全没有问题。 但是以下内容将无法正常运行,这可能是导致未选择该内容的原因。 这是在while循环内。 谢谢。 问题答案: 在php a和a中有很大的不同,查询语法在查询周围是双引号,在变量周围是单引号。。尽管我建议您在查询中使用参数,而不是直接将变量直接放入查询中 根据我的建议,您应该将查询更改为此: 这只是它的基本要点…如果您想了解

  • 问题在代码的注释中,很抱歉,我认为它更整洁,因为流程很重要,我想。。。 //*这是来自Oracle:(https://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html#hasNextInt()) ”hasNextInt 公共布尔值hasnetint() 如果此扫描仪输入中的下一个标记可以使用nextInt()方法解释为默认基数中的in

  • 问题内容: 假设我有这个: 问题: break语句会将我带出两个循环还是仅从内部循环带出?谢谢。 问题答案: 在您的示例中,break语句将使您退出while(b)循环

  • 我在编程一个订单提交页面时遇到了一个相当大的问题,该页面的目的是提交一个订单的争议--提供两个字段被填写,但只有当一个字段少于另一个字段时。 基本上,一个是下拉,另一个是争端框,查询如下: 如果DispotestExtBox=“”而下拉框=“请选择...” 一切正常-提交按钮已启用 如果DisportestExtBox!=“”而下拉框=“请选择...” 错误(反之亦然,因此如果填充了Dispone

  • 我在汇编语言中遇到了循环问题。 当我们想要使用计数器寄存器在嵌套循环中循环时,我们首先要做的是将计数器寄存器的值移动到外部循环的堆栈中,然后在我们完成内部循环时取回它,这样我们就能够使用一个计数器寄存器在每个循环中循环不同的迭代次数。 但是嵌套循环中的嵌套循环呢? 我想打印一个由字符< code>S组成的金字塔。我得到的是, 我真正想要的是, 这是我的程序代码 为了实现我想要的,我需要在嵌套循环中