PHP: mysqli_fetch_assoc saklı prosedürleri ile çalışmıyor

2 Cevap php

MySQL veritabanında bir table 'hesap' (id, email, pass) var.

Ben stored procedure:

DELIMITER $$
CREATE PROCEDURE `LoadAccount`(email_p VARCHAR(100))
BEGIN
    SELECT pass FROM account WHERE email = email_p;
END$$
DELIMITER ;

Ve burada code:

function loadAccount($email, $pass)
{
  // connect to DB
  // ...
  $query = "CALL LoadAccount('{$email}')";

  if ($mysqli->multi_query($query))
  {
    do
    {
      if ($result = $mysqli->store_result())
      {
        // Numbered array.
        while ($row = $result->fetch_array(MYSQLI_NUM))
        {
          printf("%s %s\n", $row[0]);
        }

        // Associative array.
//        while ($row = $result->fetch_array(MYSQLI_ASSOC))
//        {
//          printf("%s\n", $row['pass']);
//        }
        $result->free();
      }
      $mysqli->more_results();
    } while ($mysqli->next_result());
  }
}

Yani, dizi bölüm eserlerini Numaralı, ama bunu açıklama ve yorumsuz bir ilişkisel dizi bölümü - eğer sayfa sadece asılı ve bağlantı kaybeder.

Neden çalışmıyor?

2 Cevap

Eh, PHP yardımcı bu yeniden yükleme gibi garip şeyler için! En azından bu sefer yaptı.

Yazım hatası değil emin eğer kodunuzu veya değil:

printf("%s\n", $row[pass]);

olmalıdır:

printf("%s\n", $row['pass']);