Используйте SELECT COUNT (*), чтобы получить количество строк. В противном случае вы вернете фактические данные, которые расточительны. Посмотрите примеры PHP и PDO, чтобы узнать, как получить доступ к возвращенным значениям запроса.

аю окно входа в систему, и когда я подсчитываю количество строк, затронутых оператором SELECT для проверки учетной записи и пароля, у меня возникает проблема.

Ошибка: SQLSTATE [HY000]: общая ошибка: 1008 OCIStmtExecute: ORA-01008: привязаны не все переменные (ext \ pdo_oci \ oci_statement.c: 159)

Вот проблема (Я сделал это, потому что мне нужно подсчитать количество строк, когда я делаю SELECT. Все это для входа.)

Я нашел этот кусок кода на официальной странице PHP:Страница PHP ссылка (Пример № 2)

$resultado = $base->query($sql);

        if ($resultado) {

            /* Comprobar el número de filas que coinciden con la sentencia SELECT */
          if ($resultado->fetchColumn() > 0) {

                /* Ejecutar la sentencia SELECT real y trabajar con los resultados */
                echo "<h2>Adelante!!</h2>";

            }
            /* No coincide ningua fila -- hacer algo en consecuencia */
          else {
              print "Ninguna fila coincide con la consulta.";
            }
        }

КОД:

<!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <?php
        try
        {
            $base = new PDO('oci:dbname=localhost', 'hr', 'hr');
            $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql= "SELECT * FROM DEPARTMENTS WHERE DEPARTMENT_ID=:login AND MANAGER_ID=:password";

            $resultado = $base->prepare($sql);
            $login = htmlentities(addslashes($_POST["login"])); 
            $password = htmlentities(addslashes($_POST["password"]));
            $resultado->bindValue(":login", $login); 
            $resultado->bindValue(":password", $password);

            $resultado->execute();

            $resultado = $base->query($sql);

            if ($resultado) {

              if ($resultado->fetchColumn() > 0) {
                    echo "<h2>Adelante!!</h2>";
                }

              else {
                  print "Ninguna fila coincide con la consulta.";
                }
            }

        }
        catch(Exception $e)
        {
            die("Error: " .$e->getMessage());
        }

    ?>
    </body>
    </html>