Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP - MySQL получава стойност на изходния параметър от съхранена процедура

Или дори просто направете "SELECT @id AS id" след това $row->id ще работи добре. Винаги преименувам избрани колони, за да запазя името смислено, когато е необходимо :-)

BTW, можете просто да конкатенирате повикването и да изберете @... (с разделител на израза;) и RS ще бъде върнатата стойност. За съжаление това връща множество резултати и трябва да изчистите пълния набор, в противен случай следващите заявки ще спрат. Вижте следните примери:

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

Алтернативно добавете select към addNewUser и върнете RS вместо 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

Първият връща набор от множество заявки (NULL, RS), а вторият набор (RS, NULL), следователно можете да използвате просто извикване на query(), което вгражда първия fetch_object(), но все пак трябва да изчистите стека на 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. Как да обедините две таблици с помощта на разделен със запетая списък в полето за присъединяване

  2. Инсталиране на MySQL-python

  3. как да поръчате JSON отговор въз основа на връзката с базата данни, използвайки eloquent

  4. Как трябва да се съхраняват времеви печати на unix в колони int?

  5. Защо определени типове подготвени заявки, използващи PDO в PHP с MySQL, са бавни?