第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP:mysqli_stmt_num_rows($stmt) 總是返回 0

PHP:mysqli_stmt_num_rows($stmt) 總是返回 0

PHP
蕪湖不蕪 2021-09-18 15:59:58
我正在嘗試實現(xiàn)一個登錄系統(tǒng),除了這個返回 0 的 PHP 腳本外,它主要工作:// $username_err & $password_err is empty, gets reset every time as "".if(empty($username_err) && empty($password_err)){    $query = "SELECT rowid, username, password FROM admin_login WHERE username = ?";    if($stmt = mysqli_prepare($db, $query)){        mysqli_stmt_bind_param($stmt, "s", $param_username);        $param_username = $username;            if(mysqli_stmt_execute($stmt)){                mysqli_stmt_store_result($stmt);                // Doesn't work here, works up until here.                if(mysqli_stmt_num_rows($stmt) == 1){                    mysqli_stmt_bind_result($stmt, $rowid, $username, $hashed_password);                    if(mysqli_stmt_fetch($stmt)){                        if(password_verify($password, $hashed_password)){                        session_start();                        $_SESSION["loggedin"] = true;                        $_SESSION["id"] = $rowid;                        $_SESSION["username"] = $username;                        header("location: index.php");                        }else{                           $password_err = "Invalid password";                        }                    }                }else{                    $username_err = "No such account exists.";            }        }else{    echo "An error occurred.";    }  }mysqli_stmt_close($stmt);}mysqli_close($db);這永遠(yuǎn)不會奏效,因為它卡住了,因為它不滿足條件 mysqli_stmt_num_rows == 1,而是返回 0。它確實通過 MySQL 直接通過 Workbench 工作:SELECT rowid, username, password FROM admin_login WHERE username = "admin";確實返回具有匹配條件的 1 行。** 編輯:這是我的新代碼;**<?phprequire_once "_php/login/config.php";$username = $password = "";$err = "";它拋出:致命錯誤:未捕獲錯誤:在目錄/login_script.php:25 中的布爾值上調(diào)用成員函數(shù) fetch_assoc()堆棧跟蹤:#0目錄/login.php(2): require() #1 {main} 拋出目錄/第 25 行的 login_script.php作為參考,login_script 是PHP 腳本,login 是php 的前端。
查看完整描述

1 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

  1. 永遠(yuǎn)不需要那個無用的 num_rows 東西。您已經(jīng)有來自 fetch() 的一行。在您有使用 num_rows 的想法的任何地方使用它。

  2. 當(dāng)它為 0 時(或者更確切地說,唯一獲取的行是假的),這意味著您的查詢沒有找到給定輸入值和當(dāng)前數(shù)據(jù)庫內(nèi)容的行。就如此容易。這是你的問題的答案。簡單、直接、合乎邏輯。

  3. 也就是說,這段代碼比它需要的要膨脹三倍。請參閱我為使用 mysqli 檢查密碼而編寫的規(guī)范代碼。驗證您的輸入值、數(shù)據(jù)庫內(nèi)容并檢查錯誤 - 它將完美運行。


查看完整回答
反對 回復(fù) 2021-09-18
  • 1 回答
  • 0 關(guān)注
  • 413 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號