Как выполнять 2 или более процедур, хранившихся с mysqli в php?

У меня есть 2 процедуры, хранившиеся в том же файле, связи он осуществляется правильным способом, так как, если любой полуторагодовалый ягненок 2 процедур другой, если он показывает информацию, но если я оставляю оба одинокими, выполняет первого.

У меня есть файл conectar.php с sig код:

class Clase_Conecta{
     var $_Server = 'localhost';
     var $_User = 'root';
     var $_Password = '';
     var $_Bd = 'bd1';

     function Fn_getConnect(){
        if (!($conexion = new mysqli($this -> _Server, $this -> _User, $this -> _Password, $this -> _Bd))){
           echo "Error Conectando la base de Datos";
           exit();
        }else{
          echo "conexion exitosa";
        }
        return $conexion;
     }
  }

И мой файл principal.php с sig:

include ("conectar.php");
$Fn = new Clase_Conecta();
$Cn = $Fn -> Fn_getConnect();

$sql1 = "call sp1()";
$r = query($sql1);

while ($rP = $r -> fetch_array()){
            //Imprime tabla
       }

//Hasta aquí funciona bien pero si quiero ejecutar otro procedimiento almacenado no lo hace
//solo ejecuta el de arriba (el primero)

$sql2 = "call sp2()";
$r2 = query($sql2);

 while ($rP2 = $r2 -> fetch_array()){
            //Imprime tabla
     }

Я представляю себе то, что я понимаю плохо концепции, но уже я прочитал и исследовал и он у меня не остается совсем ясным, пожалуйста, если кто-то такой любезный ориентирования меня, которого я врежу или который опускаю

3
задан 30.12.2016, 20:58
0 ответов

Ты будешь видеть, оно ты не функционирует, потому что тебе не хватает ; в коде sql.

Это ошибка в синтаксисе sql.

Код у тебя должен оставаться таким:

include ("conectar.php");
$Fn = new Clase_Conecta();
$Cn = $Fn -> Fn_getConnect();

$sql1 = "call sp1();";
$r = query($sql1);

while ($rP = $r -> fetch_array()){
            //Imprime tabla
       }
$r->close();
$Cn->next_result();
//Hasta aquí funciona bien pero si quiero ejecutar otro procedimiento almacenado no lo hace
//solo ejecuta el de arriba (el primero)

$sql2 = "call sp2();";
$r2 = query($sql2);

 while ($rP2 = $r2 -> fetch_array()){
            //Imprime tabla
     }
 $r2->close();
 $Cn->next_result();

2
ответ дан 03.12.2019, 17:54
  • 1
    Спасибо за ответ, fí jate, что уже это изменил; и также así функционируй, он делает то же самое, если я комментирую блок có я говорю, где я выполняю 2-ой sp, меня выполняет 1-ый, и если я удаляю блок có я говорю, что 1er sp меня выполняет 2-ой sp, но если я оставляю оба одинокими, он выполняет 1-ого. –  30.12.2016, 21:10
  • 2
    Возврати algú n pará метр вывода? –  30.12.2016, 21:17
  • 3
    Процедуры ни один, только мне показывает 4 линии 1-ый и 7 линии 2-ой. –  30.12.2016, 21:23
  • 4
    Я изменил вызов –  30.12.2016, 21:26
  • 5
    Если я только что увидел это и извиняюсь за то, что написал это плохо, но в моем có я говорю оригинал, если я считаю то, что ты только что добавил, костлявая это у меня есть равно как последние ты actualizació n и он продолжает меня последовав за тем же самым:/ –  30.12.2016, 21:30