Какой альтернативный оператор выполнения mysqli для оператора выполнения PDO? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть фрагмент оператора pdo, который я хочу использовать в качестве оператора mysqli, но я, похоже, не понимаю, как это происходит.

Я пытаюсь "преобразовать" amysqli-> execute (array ()) из оператора pdo в оператор mysqli.

Из того, что я понял, есть оператор execute (), который не ожидает никаких параметров с mysqli, но с PDO он ожидаетпараметр?

Это код, который я хочу преобразовать как выражение mysqli:

$sql = "SELECT * FROM users WHERE username = :username";
        $sth = $GLOBALS["DB"]->prepare($sql);
        $sth->execute(array(":username" => $username));
        $result = $sth->fetchAll();

        if (!empty($result)) {
            $privUser = new PrivilegedUser();
            $privUser->user_id = $result[0]["user_id"];
            $privUser->username = $username;
            $privUser->password = $result[0]["password"];
            $privUser->email_addr = $result[0]["email_addr"];
            $privUser->initRoles();
            return $privUser;
        } else {
            return false;
        }

, и это мой текущий код:

$sql = "SELECT * FROM users WHERE user_id = ?";
          $stmt = $mysqli -> prepare($sql);
          $stmt->bind_param('s', $user_id);
// line below is what i need to convert to a mysqli statement
          $stmt->execute(array(":user_id" => $user_id));
          //$stmt->store_result();
          $result = $stmt->fetchAll();

          if (!empty($result)) {
              $privUser = new PrivilegedUser();
              $privUser->user_id = $result[0]["user_id"];
              $privUser->username = $user_id;
              $privUser->password = $result[0]["password"];
              $privUser->email_addr = $result[0]["email_addr"];
              $privUser->initRoles();
              return $privUser;
          } else {
              return false;
          }
...