0

我必须为每个不同的可能结果生成不同的 sql SELECT 语句。我的问题是如何构建 $stmt->bind_param() 以及如何输出结果?谢谢

      $tipoCategorias = array(
          1 => 'ID_CAMARAS,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,MEGAPIXELES_CAMARAS,ZOOM_DIGITAL_CAMARAS FROM CAMARAS',
          2 => 'ID_CONSOLAS,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,COLOR_CONSOLAS FROM CONSOLAS', 
          3 => 'ID_JOYAS,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,TIPO_JOYAS,MATERIAL_JOYAS FROM JOYAS', 
          4 => 'ID_MOVILES,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,ID_OPERADOR,MEMORIA_MOVILES,IMEI_MOVILES,COLOR_MOVILES FROM MOVILES', 
          5 => 'ID_ORDENADORES,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,PROCESADOR_PORTATILES,MEMORIA_PORTATILES,HD_PORTATILES,PULGADAS_PORTATILES FROM PORTATILES', 
          6 => 'ID_TABLETS,ID_PRODUCTOS_OFERTADOS,ID_CATEGORIA,MEMORIA_TABLETS,COLOR_TABLETS FROM TABLETS');
      foreach($tipoCategorias as $keycampos => $valuecampos){
          if($keycampos==$id_categoria){

              $cSQL="SELECT " . $valuecampos . " WHERE ID_CATEGORIA=? AND ID_PRODUCTOS_OFERTADOS=?";
              $stmt=$oConni->prepare($cSQL);
              $stmt->bind_param('ii',$id_categoria,$id_prod_of);
              $stmt->execute();
              $stmt->store_result();
              /* here --> $stmt->bind_result(¿?); */
              $str=null;
              while ($stmt->fetch()) {

                    /*$str.= Anything to output;*/

              }
              echo $str;
          }

  }
4

1 回答 1

1

您可以使用call_user_func_array$stmt->bind_param以可变数量的参数进行调用。另请参阅可调用定义。

对于绑定结果,您可以以相同的方式使用对输出变量的引用。

例子:

$params = array("iii", $a, $b, $c);
call_user_func_array(array($stmt, "bind_param"), $params);

$a = 0;
$b = 0;
$result = array(&$a, &$b);
call_user_func_array(array($stmt, "bind_result"), $result);
于 2013-11-14T09:41:38.000 回答