Я должен генерировать разные 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; } }
Вы можете использовать call_user_func_array для вызова $stmt->bind_param
с переменным числом параметров. Также см. Определение Callable .
Для результата привязки вы можете использовать ссылки на выходные переменные одинаково.
Пример:
$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);