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

PHP mysqli przygotowało instrukcję dla procedury składowanej bez parametru out

Sposób, w jaki procedury składowane działają z przygotowanymi instrukcjami, jest nieco bardziej skomplikowany. Podręcznik PHP stwierdza, że ​​musisz używać zmiennych sesji (sesje MySQL, nie PHP)

Więc możesz to zrobić za pomocą

$connect=&ConnectDB();
// bind the first parameter to the session variable @uid
$stmt = $connect->prepare('SET @uid := ?');
$stmt->bind_param('s', $uid);
$stmt->execute();

// bind the second parameter to the session variable @userCount
$stmt = $connect->prepare('SET @userCount := ?');
$stmt->bind_param('i', $userCount);
$stmt->execute();

// execute the stored Procedure
$result = $connect->query('call IsUserPresent(@uid, @userCount)');

// getting the value of the OUT parameter
$r = $connect->query('SELECT @userCount as userCount');
$row = $r->fetch_assoc();               

$toRet = ($row['userCount'] != 0);

Uwaga:

Polecam przepisać tę procedurę jako funkcję z jednym parametrem IN, który zwraca INT.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można znaleźć klasy [org.springframework.orm.hibernate5.LocalSessionFactoryBean] dla ziarna o nazwie „hibernate5AnnotatedSessionFactory”

  2. Różnice między MySQL a SQL Server

  3. Jak MySQL przechowuje dane?

  4. Czy w MySQL można używać zapytania krzyżowego/przestawnego?

  5. Ogólny błąd zabity w skrypcie PHP