我有一个奇怪的问题,我在主键上使用MAX而查询忽略了我的WHERE子句。
$isWorking= 0;
$q = $db->prepare("SELECT versionId, isFinished FROM users WHERE userId = :userId");
$q->bindParam(':userId',$userId);
$q->execute();
$qr = $q->fetchAll(PDO::FETCH_ASSOC);
if($q->rowCount() > 0){
foreach($qr as $row){
if($row['isFinished'] == '1'){
$isWorking = 0;
}else{
$isWorking = 1;
}
}return $isWorking;
}
在表格中只有一个条目。
versionId: 44 isFinished : 1 userId : 20
当我执行上述查询并提供包括' 20'在内的各种userId时,我为每个人提供$isWorking = 0
。当我将查询更改为:
"SELECT MAX(versionId)...
我为提供的ID提供$isWorking = 0
,但为其他人提供"1"
!!
这怎么可能?它忽略了我的WHERE
子句,并且提供的任何userId都运行查询...