Следующий блок кода работает нормально (без ошибок)
$query = "select * from users where username = ?";
$statement = $sql->prepare($query);
echo gettype($statement); // -- This returns 'object'
$statement->bindParam(1, $username);
Следующее дает:
Неустранимая ошибка: вызов функции-члена bindParam () для необъекта в /file.php в строке 39
$email = 'fake@email.com';
$query = "select * from users where email = ?";
$statement = $sql->prepare($query);
echo gettype($statement); // -- this returns 'boolean'
$statement->bindParam(1, $email); // -- this is line 39.
Теперь это странно.
На моей локальной машине и на моем удаленном хосте это никогда не было проблемой.
Эта ошибка появляется только на этой новой хостинговой компании, которую я пробую в течение месяца. Может ли это быть параметр конфигурации, когда они скомпилировали php?
-------- редактировать --------
Все еще пытаясь понять, что не так, я выяснил это.
<code>$query = "select userID, username from users";
$statement = $sql->prepare($query);
$statement->execute();
$r = $statement->fetchAll(PDO::FETCH_ASSOC);
// display # of rows
echo "Rows returned: " . $statement->rowCount();
// display results array
echo '<pre>'; print_r($r); echo '
';
На сервере я получаю
Rows returned: 4
Array
(
[0] => Array
(
[userID] => 1
[username] => lyrae
)
[1] => Array
(
[userID] => 2
[username] => jproffer
)
[2] => Array
(
[userID] => 3
[username] => king
)
[3] => Array
(
[userID] => 4
[username] => gergy
)
)
Что правильно. Говорит, что возвращено 4 строки и отображает массив результатов. Однако на другом сервере я получаю
Rows returned: 0
Array
(
[0] => Array
(
[userID] => 1
[username] => lyrae
)
[1] => Array
(
[userID] => 2
[username] => jproffer
)
[2] => Array
(
[userID] => 3
[username] => king
)
[3] => Array
(
[userID] => 4
[username] => gergy
)
)
Таким образом, кажется также, что PDOStatement :: rowCount () не работает на сервере, а работает на другом.