是否可以獲取語句的行數?我嘗試這個$stmt2 = $pdo->query("SELECT count(*) FROM `participation` WHERE id_evenement = '$id_event' AND id_membre_participation ='$id_membre'");if ($stmt2 == 0) { echo 'ok'; } else { echo 'no';} 但我有這個錯誤:Notice: Object of class PDOStatement could not be converted to int in C:\wamp64\www\projet\[...] on line 55no該聲明是正確的,如果我在php我的管理員中嘗試以下操作:SELECT count(*) FROM `participation` WHERE id_evenement = 9 AND id_membre_participation = 1我有+----------+| count(*) |+----------+| 1 |+----------+如果我更改id_membre_participation為2:SELECT count(*) FROM `participation` WHERE id_evenement = 9 AND id_membre_participation = 2+----------+| count(*) |+----------+| 0 |+----------+有任何想法嗎?謝謝!
2 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
PDO::query返回結果集作為PDOStatement對象,您必須從中獲取實際數據。在這種情況下,您只有一個值,可以通過調用進行檢索PDOStatement::fetchColumn。試試這個:
$stmt2 = $pdo->query("SELECT count(*) FROM `participation`
WHERE id_evenement = '$id_event'
AND id_membre_participation ='$id_membre'");
$count = $stmt2->fetchColumn(0);
if ($count == 0) {
echo 'ok';
} else {
echo 'no';
}

暮色呼如
TA貢獻1853條經驗 獲得超9個贊
是的,您可以fetchColumn用來獲取行數
$sql = "SELECT count(*) FROM `table` WHERE foo = bar";
$result = $con->prepare($sql);
$result->execute();
$number_of_rows = $result->fetchColumn();
- 2 回答
- 0 關注
- 316 瀏覽
添加回答
舉報
0/150
提交
取消