0

我有一个 $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 扩展的最佳实践以及如何对值数组运行查询

4

1 回答 1

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 个颜色代码。

于 2011-10-24T12:31:14.680 回答