我试图打印出这个查询的总行数,但我不明白为什么这个查询会产生一个布尔值而不是包含总行数的整数。

$butacas = $this->pdo->query('SELECT COUNT(*) FROM usuarios WHERE sala LIKE $nombreSala');

我试图使用rowCount(),但是我得到了一个错误,告诉我$butacas不是一个对象。
所以,我问了$butacas是什么类型的元素,它是一个布尔值:
$x = gettype($butacas); //boolean

我试过在phpmyadmin做SELECT COUNT(*) FROM usuarios WHERE sala LIKE theNameoftheSala,结果是一个数字。

最佳答案

您从MySQL得到一个错误,因此query()返回false。您需要在LIKE之后引用字符串。此外,还需要在PHP字符串周围使用双引号,因为变量不在单引号内展开。

$butacas = $this->pdo->query("SELECT COUNT(*) FROM usuarios WHERE sala LIKE '$nombreSala'");

但最好使用bindParam
$stmt = $this->pdo->prepare('SELECT COUNT(*) FROM usuarios WHERE sala LIKE :nombreSala');
$stmt->bindParam(':nombreSala', $nombreSala);
$stmt->execute();

08-25 21:11