php行计数不工作
我试图检查数据库中是否设置了密码。但目前它只是说有一个密码集 这是我的代码,应该返回“Pass不在数据库中”,但返回“Pass在数据库中” 还有这个php行计数不工作,php,pdo,rowcount,Php,Pdo,Rowcount,我试图检查数据库中是否设置了密码。但目前它只是说有一个密码集 这是我的代码,应该返回“Pass不在数据库中”,但返回“Pass在数据库中” 还有这个 $currentalbumid = $_SESSION['album_id']; $check = $upload->checkpass($currentalbumid); echo $check; 有两种可能性: 行可能存在,但返回的pass值为空。只要数据库中有album_id=1的条目,它就应该返回1的行数
$currentalbumid = $_SESSION['album_id'];
$check = $upload->checkpass($currentalbumid);
echo $check;
有两种可能性: 行可能存在,但返回的
pass
值为空。只要数据库中有album_id=1的条目,它就应该返回1的行数,而不管密码是否在数据库中
另一种可能是数据库配置不允许PDO在SELECT语句上返回rowCount()。rowCount()是为更新、插入和删除而设计的,因此它与SELECT并不总是友好的。有关更多信息,请参见此 公共函数检查通过($currentalbumid)
public function checkpass($currentalbumid)
{
$query = $this->db->prepare("SELECT * FROM `album` where `album_id` = ?");
$query->bindValue(1, $currentalbumid);
$query->execute();
if($query->rowCount() > 0){
// password is in the batabase
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
if($row['pass']){
echo '<input readonly type="password" class="input2" value="locked" /><input type="submit" class="addbtn" value="Locked" />';
} else {
echo '<input type="password" class="input2" id="album_password" placeholder="Want to add a password?" /><input type="submit" class="addbtn" id="lock" value="Lock" />';
}
}
} else {
// password is not in the database
echo "album not found";
}
}
{
$query=$this->db->prepare(“从'album'中选择*,其中'album\u id`=?”;
$query->bindValue(1,$currentalbumid);
$query->execute();
如果($query->rowCount()>0){
//密码在batabase中
while($row=$query->fetch(PDO::fetch_ASSOC)){
如果($row['pass'])){
回声';
}否则{
回声';
}
}
}否则{
//密码不在数据库中
回显“未找到相册”;
}
}
试试看
而不是
$query = $this->db->prepare("SELECT `pass` FROM `album` WHERE `album_id` = ?");
所以我所说的是正确的?它应该是有效的。是的,如果通行证是空的,它仍然说有通行证。rowcount对此是否正确?否。对于SELECT语句,rowcount()不可靠。尝试
if(!empty($query->fetchColumn(0))
而不是if($query->rowCount()>0)
谢谢,但我收到一条错误消息,无法在写入上下文中使用方法返回值您需要执行$result=$query->execute()代码>。然后您可以尝试$result->rowCount()
或!空($result->fetchColumn(0))
即使对于rowCount()??
$query = $this->db->query("SELECT `pass` FROM `album` WHERE `album_id` = ?");
$query = $this->db->prepare("SELECT `pass` FROM `album` WHERE `album_id` = ?");