sql >> Databáze >  >> RDS >> Mysql

PHP - MySQL získá hodnotu parametru out z uložené procedury

Nebo dokonce stačí udělat "SELECT @id AS id" pak $row->id bude fungovat dobře. Vždy přejmenovávám vybrané sloupce, aby měl název v případě potřeby smysl :-)

BTW, můžete hovor jednoduše zřetězit a vybrat @... (s oddělovačem příkazu;) a RS bude vrácená hodnota. Bohužel to vrací vícenásobnou sadu výsledků a musíte vyprázdnit celou sadu, jinak se následné dotazy zastaví. Viz následující příklady:

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

Případně přidejte select do addNewUser a vraťte RS místo 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

První vrací sadu multiquery (NULL, RS) a druhá sadu (RS, NULL), takže můžete použít jednoduché volání query(), které vloží první fetch_object(), ale stále musíte vyprázdnit zásobník RS.



  1. Jak získat další ID automatického zvýšení v mysql

  2. Jak najít formáty data používané pro konkrétní jazyk v SQL Server (T-SQL)

  3. php funkce nevrací všechny výsledky z dotazu MySQL ve foreach

  4. Android Room – Práce se seznamem objektů v objektu a výsledkem dotazování