php mysqli oo multi_query数组

时间:2011-10-24 11:46:55

标签: php mysqli-multi-query

我有一个$ color_combo值,它会爆炸成给定项目的$ colors数组(数组中有3个值)。 $ colors值是3个字符的字符串代码,即FGR,db中有一个查找表,将该代码与颜色'forest green'匹配...但每个项目有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扩展的最佳实践以及如何在值数组上运行查询

1 个答案:

答案 0 :(得分: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个颜色代码。