在while循环中执行mysqli准备的语句,该语句正在执行另一个mysqli准备的语句

时间:2020-06-04 17:35:48

标签: php mysqli bindparam

我有一个mysql表,其中包含除产品图片以外的所有产品的信息,如下所示:

watchID | watch_serial | ....>等

然后我的产品图片表如下:

picID | name_prod | watch_serial | ....>等

这两个表之间的关系键是watch_serial

第一个表中的每个手表在第二个表中可能有几张图片。因此,要获取与每个watch_serial相关的所有图片,我必须在其中一个放置mysqli SELECT查询,如下所示:

    $watchQ = "SELECT `watch_serial` FROM `watch` ";
    $watchSTMT= $db->prepare($watchQ); 
    $watchSTMT->execute();
    $watchSTMT->bind_result($watch_serial );
    while ( $watchSTMT->fetch()){

        echo $wa_serial."<br>"; 


    $prodSEARCHq = "SELECT `name_prod` FROM ppic WHERE pserial = ?";
    $prodSEARCHstms= $db->prepare($prodSEARCHq);  
    $prodSEARCHstms->bind_param("s",$watch_serial);
    $prodSEARCHstms->execute();
    $prodSEARCHstms->bind_result($name_prod);
    while ($prodSEARCHstms->fetch()){

        echo $name_prod;




    }
    $prodSEARCHstms->close();
    }

如果我将它们分开并分别运行,则上面的查询将正确地回显结果,但是如果我像上面看到的那样混合循环,则会得到以下错误:

RAAA0009L19B

致命错误:未捕获错误:在/Applications/XAMPP/xamppfiles/htdocs/watche.php:7535中对布尔值上的成员函数bind_param()进行调用:7535堆栈跟踪:#0 {main}放在/ Applications / XAMPP / xamppfiles中/htdocs/watche.php,第7535行

将在以下行中:

    $prodSEARCHstms->bind_param("s",$watch_serial);

我确保bind_param条件全部设置正确。

我已经检查了此处提供的解决方案:Executing mysqli prepared statment within while loop that's within another while loop

php loop within mysqli loop

不幸的是,我仍然遇到相同的错误。

这是由于在获取另一个查询的循环中运行查询而发生的吗?我没有其他方法可以从第一个查询中获取搜索关键字,而不是从我自己的代码中获取其他信息,请帮帮我,因为我尝试了很多类似的方法,但都出现了致命错误

0 个答案:

没有答案
相关问题