2
我想檢查一個db表中的條目是否存在基於兩列'id'和'devicetoken'。php檢查數據庫中是否存在行返回始終爲真
我總是從這個函數得到結果,但是在數據庫中,沒有這樣的入口。這怎麼可能?
$selectSQL = "SELECT id from devices where devicetoken = ? and id = ?";
echo "token:".$utoken."\n";
echo "id:".$uid."\n";
$resultId = -33;
if ($stmt->prepare($selectSQL)) {
$stmt->bind_param('ii', $utoken, $uid);
$stmt->execute();
$stmt->bind_result($resultId);
$stmt->fetch();
$stmt->close();
echo $resultId;
if ($resultId == $uid) {
echo "AA";
return true;
} else {
echo "BB";
return false;
}
}
當我運行的頁面與此PARAMS:
令牌:ASDF
ID:2
我得到被打印輸出2AA
,因爲$resultId == $uid
。但這怎麼可能呢? select語句明確地過濾兩個where條件,並且不存在諸如token = asdf和id = 2的條目。 id = 2的真實條目具有token值='b'。
這裏是我的表的截圖:
如果我對MySQL工作臺
SELECT id from devices where devicetoken = 'b2' and id = 2
運行代碼我沒有得到任何錯誤和0的結果,這是正確的。但是從PHP頁面得到錯誤的結果。這怎麼可能?
令牌是一個字符串,你正在使用'i',使用's'。這是一個錯字問題。 –
我聞到有人制定答案;恕我直言,不應該有。 –
aaargh。非常感謝。這是問題! –