【问题标题】:php mysqli oo multi_query over an arrayphp mysqli oo multi_query 在一个数组上
【发布时间】:2011-12-14 01:51:55
【问题描述】:

我有一个 $color_combo 值,它分解为给定项目的 $colors 数组(数组中的 3 个值)。 $colors 值是 3 个字符的字符串代码,即 FGR,并且数据库中有一个查找表,将该代码与“森林绿色”颜色匹配……但是每个项目有 3 种颜色,我需要运行查询 3 次数组:

 $color_combo = 'FGR-BLU-YLW'
 $colors = explode('-', $color_combo);
 $q = $mysqli -> prepare("SELECT color_name from color_table as c WHERE color_code=?");
 $q->bind_param("s", $colors[]);

所以我正在尝试:

 while (mysqli_multi_query($link, $q)) {
 $result = mysqli_store_result($link))
 return $result;
 }

我无法找到有关此案例场景的文档,它可能正在使用其他功能...:

 $value = $result->fetch_array(); ... or maybe next_result() or more_result()

我的核心问题是关于 mysqli 扩展的最佳实践以及如何对值数组运行查询

【问题讨论】:

    标签: php mysqli-multi-query


    【解决方案1】:

    您应该将带有查询的代码更改为以下内容:

    $color_combo = 'FGR-BLU-YLW'
    $colors = explode('-', $color_combo);
    $q = $mysqli ->prepare("
        SELECT 
            color_name 
        FROM
            color_table as c 
        WHERE 
            color_code IN (?, ?, ?)
    ");
    
    $q->bind_param("sss", $colors[0], $colors[1], $colors[2]);
    

    执行语句后,结果现在将包含数据库中包含颜色名称的 3 行。您可以遍历此结果以检索颜色名称。该代码假定 $colors 数组中始终存在 3 个颜色代码。

    【讨论】:

    • 其他,从您的个人资料中我可以看到您尚未接受任何问题的答案。您可以通过单击适合您的答案旁边的勾号来执行此操作。这让阅读您的问题的其他用户更容易看到哪个答案有效。
    猜你喜欢
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2018-09-22
    • 2018-12-30
    • 2015-04-23
    • 2011-06-20
    • 2018-11-22
    相关资源
    最近更新 更多