Из-за какой отметки эта ошибка в использовании функции-> fetch_all ()? Когда сайт находится в hosting, локально функционируй

Это функция внешнего файла, который содержит консультацию мульти-таблицу, я посылаю приносить ее с формуляра другого файла и печатаю Вашу стоимость, которую производит array númerico, последованный из консультации, с функцией ->fetch_all() . Но оказывается, что на локальном сервере моей машины оно функционирует, но переслав файлы в hosting, он помечает эту ошибку, состоя в том, что локальным способом он это не помечает: Ошибка в функции,

Фатальная ошибка: Call to undefined method mysqli_result:: fetch_all ()

function getAlumByGpoMat2($conexion,$grupos)
{
   $respuesta = mysqli_query($conexion, "SELECT A.matricula, A.nombre, AG.parcial1, AG.inasisP1, AG.parcial2, AG.inasisP2, AG.final, AG.idAlumno, AG.parcial3, AG.inasisP3, AG.idGrupo, AG.final, AG.asistencias FROM alumno A, alumno_grupo AG, materias M, periodos Pr, profesores P, grupos G WHERE M.idMateria = G.materia and A.idAlumno = AG.idAlumno and G.idGrupo = AG.idGrupo and G.profesor = P.idProfesor and G.periodo = Pr.idPeriodo and AG.idGrupo = $grupos ORDER BY A.nombre") or die (mysqli_error($conexion)); 

       return $respuesta->fetch_all(); 

}
 if(isset($_GET['gpo']))  

      $grupos = $_GET['gpo'];  //RECIBIMOS EL PARAMETRO POR URL : EL ID DE LA TABLA ALUMNO_GRUPO

       $alumbosByGpoMater = getAlumByGpoMat2($conexion,$grupos); //funcion extraida del archivo externo

<form method="POST" action="capt_cambios.php">
        <?php
        //listado de los alumnos del grupo que estan en esa materia:
         foreach ($alumbosByGpoMater as $alumno): 
        ?>
        <tr>    
           <!-- imprime contador de registros, o numero de registros que aparecen recuperados  -->
          <td><?php if ($i <= $num_rows) {  echo $i; } ?></td>
          <!-- imprime matrticula de alumno  -->
          <td><?php echo $alumno[0];?></td>
          <!-- imprime nombre de alumno  -->
          <td><?php echo $alumno[1];?></td>
          <!-- casillas para capturar caliicaciones  e inasistencias por periodo  -->
          <!-- parcialP1= calificacion periodo e inasistencias del periodo 1  -->
          <!-- intentaba enviar un solo arreglo con ambas columnas: calificacion e inasistencias por periodo  -->
          <td><input type="text" name="parcialP1[]" class="p1" size="2" value="<?php echo $alumno[2]; ?>" ></td>
          <td><input type="text" name="parcialP1[]" class="p1" size="2" value="<?php echo $alumno[3]; ?>" ></td>
          <td><input type="text" name="parcialP2[]" class="p2" size="2" value="<?php echo $alumno[4]; ?>" ></td>
          <td><input type="text" name="parcialP2[]" class="p2" size="2" value="<?php echo $alumno[5]; ?>" ></td>
          <td><input type="text" name="parcialP3[]" class="p3" size="2" value="<?php echo $alumno[8]; ?>" ></td>
          <td><input type="text" name="parcialP3[]" class="p3" size="2" value="<?php echo $alumno[9]; ?>" ></td>

          <td><input type="hidden" name="idgpo[]" value="<?php echo $alumno[10]; ?>" readonly></td>
          <td><input type="hidden" name="idalumno[]" value="<?php echo $alumno[7]; ?>" readonly></td>

          <td><input type="text" name="final[]" class="final" size="2" value="<?php echo $alumno[11]; ?>" readonly ></td>
          <td><input type="text" name="porcent[]" class="porcent" size="2" value="<?php echo $alumno[12]; ?>" readonly ></td>
          <td><input type="text" name="asistotales[]" class="inatot" size="2" value="" ></td>
       <?php 
          $i++;  //incrementamos contador en 1 luego de cada alumno recuperado, 
          endforeach 
        ?> 
         <td><input type="text" name="numsesiones" class="nsesiones" size="2" value="" ></td>
        </tr>
            </tbody>
           </table>
           <div align="center">    
           <button type="submit" name="formAlumno" id="enviar" class="btn btn-success">CAPTURAR EVALUACIONES</button>
           </div>
           </div>
        </form>             
3
задан 14.12.2016, 02:23
3 ответа

Прицел, который должен видеть, который является версией твоего сервера. Возможно проблема была, потому что версия в, та, которая функция fetch_all начни быть вынесенным это версия PHP 5.3.0.

Ты мог бы использовать метод fetch_assoc в Вашем недостатке, так как он был, если, что вынесен для предыдущих версий, следующего способа:

$filas= array();
while ($fila = $result->fetch_assoc()) {
    $filas[] = $fila;
}

Таким образом ты симулировал бы эффект, который делает метод fetch_all.


С другой стороны, поскольку ты комментировал мне, что твоя версия больше в 5.3.0, тогда теоретически у тебя не была бы должна бы быть никакая проблема с этой функцией относительно версии PHP сервера.

Однако, ты был бы должен подтверждать, что ты считал установленным пакет mysqlnd, как покажи в документации, так как а оно ты не будет функционировать.

Доступный только с mysqlnd.

1
ответ дан 24.11.2019, 12:06
  • 1
    если то, что я только что увидел, на сервере помещения машины его 5.6 того hosting 5.5 – Armando Arellano 14.12.2016, 02:26
  • 2
    @ArmandoArellano я Только что видел в documentació n PHP , которых у себя требует пакет mysqlnd, установленный на твоем сервере. Available only with mysqlnd. Смотрит посмотрим у тебя есть этот установленный пакет. – Francisco Romero 14.12.2016, 02:35
  • 3
    это hosting gratuto, у которого есть версия 5.5, я иду посмотрим есть манера это проверять – Armando Arellano 14.12.2016, 02:40
  • 4
    @ArmandoArellano, Если ты не всегда можешь симулировать эффект используя fetch_assoc, как я поместил тебя в, восполни запас, так как этот не нуждается ningú n тип пакета. – Francisco Romero 14.12.2016, 09:42
  • 5
    Спасибо, сейчас, если он завершает эту :) – Marcos 14.12.2016, 15:38

Самое вероятное состоит в том, чтобы версия php твоего hosting была старой. Метод fetch_all () функционирует с PHP 5.3.0.

fetch_assoc() он мог бы служить.

while ($row = $result->fetch_assoc()) { }
0
ответ дан 24.11.2019, 12:06

это решило меня mysqlnd или nd_mysqli (asГ - apareciГі в меня), entrГ© в configuraciГіn php, и выберите эту extensiГіn, обновите и решенный. использовал версию 5.6.

Важно, если ты даже используешь mysql, ты aparecerГЎ tambiГ©n nd_mysql. Только активная та, которую ты используешь, я рекомендую тебе проходить в mysqli.

0
ответ дан 24.11.2019, 12:06
  • 1
    Добро пожаловать!! ты мог бы смотреть пробежавший и также CГіmo отвечать . Tene в счете, что вопрос очень старый, и хотя твой ответ может быть правилен, возможно, что в этом моменте он это не. – gbianchi♦ 13.03.2019, 20:21