簡體   English   中英

MYSQLi num_rows始終返回0

[英]MYSQLi num_rows always returns 0

我正在嘗試將MySQLi用於我的網站,並且正在編寫登錄腳本。 現在我有一個num_rows總是返回值0的問題

這是我的代碼

if($query = $mysqli->prepare("SELECT 'password','ban' FROM users WHERE 'username'=? LIMIT 1")){
            $query->bind_param('s', $username);
            $query->execute();
            $query->bind_result($db_password,$ban);                 
            $query->store_result();
            $query->fetch();
            $numrows = $query->num_rows;        

            if($numrows == 1){
                if($ban == 0)
                {
                    if($db_password == $password)
                    {
                        $_SESSION['login'] = 'ok';
                        //$_SESSION['id'] = $id;
                        //$_SESSION['realname'] = preg_replace("/[^a-zA-Z0-9_\-]+/","",$realname);
                        header("Location: /ematura/index.php");
                        $query->close();
                    }else{
                    die("Napaka");
                    }
                }else{
                    die("Račun zaklenjen");
                }
            }

我的問題是,即使用戶存在,為什么num_rows始終為0?

列名不應使用單引號或雙引號引起來,而是可以使用反引號(`)

SELECT `password`,`ban` FROM users WHERE `username`=? LIMIT 1

我認為綁定不正確,請嘗試更改為: $query->bind_param(1, $username);

來自: http : //php.net/manual/zh/pdostatement.bindparam.php

公共布爾PDOStatement :: bindParam(混合$ parameter,混合&$ variable [,整數$ data_type = PDO :: PARAM_STR [,整數$ length [,混合$ driver_options]]])

參數

參數標識符。 對於使用命名占位符的預備語句,這將是:name形式的參數名稱。 對於使用問號占位符的准備好的語句,這將是參數的1索引位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM