Случайная строка отсутствует в БД

1

Новый для PHP/MySQL, я пытался скопировать случайную строку проверки из нескольких других сообщений и не имел большой удачи, чтобы какой-либо вход был полезен.

Цель сделать случайный 8-значный вывод, который не находится в БД.

    function generateQuickPin($length = 8) {

    define ("DB_HOST", "localhost"); //Databse Host.
    define ("DB_USER", "6eef"); //Databse User.
    define ("DB_PASS", "a0b1"); //database password.
    define ("DB_NAME", "timecard"); //database Name.

    $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

    $flength = 1;
    $characters = '123456789';
    $charactersLength = strlen($characters);
    $randompin = '';
    for ($i = 0; $i < $flength; $i++) {
        $randompin .= $characters[rand(0, $charactersLength - 1)];
    }

    $length = $length - 1;
    $characters = '0123456789';
    $charactersLength = strlen($characters);
    for ($i = 0; $i < $length; $i++) {
        $randompin .= $characters[rand(0, $charactersLength - 1)];
    }

    $query = "SELECT * FROM 'users' WHERE 'quick_pin' = '$randompin' ";
    if ($db->query($query) === TRUE) {

        }else {
        $randomString = 'false '.$db->error;
        return $randomString;
    }
    if(mysqli_num_rows($result) > 0){ # in case a record with this "text" already exists, run this method again
        generateQuickPin(8);
    } else {
        return $randomString; # otherwise return the value/store it in the object
    }

}

спасибо

Теги:
function
mysqli
random

1 ответ

1

Вы объявляете $ result в любом месте? Если нет, замените:

if(mysqli_num_rows($result) > 0)

с

if(mysqli_num_rows($db->query($query)) > 0)
  • 0
    Кажется, что проблема заключается в строке 26 в операторе IF, где, если он потерпит неудачу, он должен вернуть false с ошибкой, но он только возвращает false и ничего больше ....
  • 0
    где вы определяете результат? Я уверен, что $ db-> query () возвращает результат, поэтому вместо использования: $ db-> query ($ query) === TRUE, используйте $ db-> query ($ query)! == false
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню