[英]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.