php - 如何在一组动态选择中构建mysql的bind_param()?

标签 php mysql

我必须为每个不同的可能结果生成不同的 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定义。

绑定(bind)结果可以使用 references以同样的方式到输出变量。

示例:

$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);

关于php - 如何在一组动态选择中构建mysql的bind_param()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974120/

相关文章:

php - 使用 preg_match 来匹配此特定模式

php - 用于 php 的 FFmpeg 包

php - 将所有列值插入变量mysql

mysql - 根据案例结果向 where 添加另一个条件

MySQL 跨多个表查询文本

java - MySQL 尝试更新 MySql 表的语法,但语法已关闭

php - 如果嵌套数组为空,则删除 mongo 数组

php - 在新命令提示符下执行命令

PHP - 扩展多个类

php - 如何运行在数据库中搜索部分关键字的 SQL 查询