Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP - MySQL pobiera wartość parametru out z procedury składowanej

Lub nawet po prostu wykonaj "SELECT @id AS id" następnie $row->id będzie działać dobrze. Zawsze zmieniam nazwy wybranych kolumn, aby w razie potrzeby nazwa była znacząca :-)

BTW, możesz po prostu połączyć wywołanie i wybrać @... (z ogranicznikiem instrukcji;), a RS będzie zwróconą wartością. Niestety, to zwraca zestaw mutli-resultset i musisz opróżnić cały zestaw, w przeciwnym razie kolejne zapytania zostaną zatrzymane. Zobacz następujące przykłady:

$db->multi_query( "CALL addNewUser($name,$age,@id);SELECT @id as id" );
$db->next_result();            // flush the null RS from the call
$rs=$db->store_result();       // get the RS containing the id
echo $rs->fetch_object()->id, "\n";
$rs->free();

Alternatywnie dodaj zaznaczenie do addNewUser i zwróć RS zamiast out param

$rs = $db->query( "CALL addNewUser($name,$age)" );
echo $rs->fetch_object()->id, "\n";
$rs->close();
$db->next_result();            // flush the null RS from the call

Pierwszy zwraca zestaw wielu zapytań (NULL, RS), a drugi zestaw (RS, NULL), stąd możesz użyć prostego wywołania query(), które osadza pierwsze fetch_object(), ale nadal musisz opróżnić stos RS.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ORDER BY DESC jest szybki, ale ASC bardzo wolny

  2. Jak zmienić hasło do konta root MySQL w CentOS7?

  3. Dynamiczne zapytanie krzyżowe MySQL:Wybieranie rekordów podrzędnych jako dodatkowych kolumn

  4. Dodawanie godzin, minut, sekund do daty SQL

  5. Jak całkowicie usunąć MySQL z Ubuntu?