Вам нужно PDOStatement
для извлечения, execute
возвращает только true или false. Вы должны только execute
PDOStatement
. Это вернет вам объект результата, который вы можете fetch
, или ошибку. Об обработке ошибок PDO см. Мой оператор PDO не работает .
$stmt = $pdo->prepare('select timezone from wo_users where user_id=?');
$stmt->execute(array($wo['user']['user_id']));
while($row = $stmt->fetch()){
var_dump($row);
die;
}
Как видно из руководства, запрос работает, потому что:
PDO :: query () возвращает объект PDOStatement или FALSE при ошибке.
, где execute :
Возвращает TRUE в случае успеха или FALSE в случае ошибки.
prepare
- это то, что нам нужно:
Если сервер базы данных успешно готовит инструкцию, PDO :: prepare () возвращает объект PDOStatement. Если сервер базы данных не может успешно подготовить оператор, PDO :: prepare () возвращает FALSE или выдает исключение PDOException (в зависимости от обработки ошибок).
и fetch (это описание, а не возврат):
Извлекает строку из результирующего набора, связанного с объектом PDOStatement