2014-11-08 3 views
1

Я пытаюсь распечатать полные строки этого запроса, и я не понимаю, почему этот запрос приводит к логическому, а не целому числу с полными строками.Почему этот запрос приводит к логическому значению вместо числа?

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

Я пытался использовать rowCount() но я получаю эту ошибку, говоря мне, что $ butacas не является объектом.

Итак, я спросил, какой тип элемента был $ butacas, и это логическое значение:

$x = gettype($butacas); //boolean 

Я пытался делать SELECT COUNT(*) FROM usuarios WHERE sala LIKE theNameoftheSala в PHPMyAdmin и я получаю результат в виде числа.

ответ

1

Вы получаете ошибку от 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(); 
2

Если сбой PDO::query, он возвращает логическое значение false. В вашем случае, кажется, терпит неудачу, как вам нужно, чтобы квалифицировать ваши строковые литералы кавычки ('):

$butacas = $this->pdo->query("SELECT COUNT(*) FROM usuarios WHERE sala LIKE '$nombreSala'"); 
Смежные вопросы