我有一个$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扩展的最佳实践,以及如何在值数组上运行查询
您应该将查询代码更改为以下内容:
$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个颜色代码。