2013-11-20 3 views
0

Я занимаюсь этим в течение последних полутора часов и не могу понять, насколько я прав.Застрял на простом PHP PDO

С тех пор как я добавил это в свой PHP-документ, я получаю пустую страницу. Обратите внимание, что он не работает в PDO. Я не новичок в PDO любыми средствами, но по какой-то причине эта неудача меня бросает. Все данные коррелируют в базе данных.

Страница возвращает пустое место, ошибок в журнале ошибок нет.

$value = "9EED4A5E4A54DC41195C8949C87ABA5FD6C035CD795188E179F9EF76FC7154FF"; 

if (!empty($_COOKIE['hash'])){ 
    $dbuser = "user"; 
    $dbpass = "pass"; 
    $dbh = new PDO('mysql:host=localhost;dbname=dbname', $dbuser, $dbpass); 
    $stmt = $dbh->query('SELECT id FROM users WHERE hash = :hash'); 
    $stmt->bindParam(':hash', $value); 
    $_SESSION['userid'] = $stmt->fetchColumn(); 

} 

Примечание: cookie устанавливается на предыдущей странице. Операция if работает, только не pro

+2

Где находится 'execute'? – sectus

+1

На странице ничего не отображается ... похоже, что она должна быть пустой –

+0

Да, нет «echo' или' print' или что-то еще :) Попробуйте «var_dump» в результате, или, может быть, что-то в вашем 'php .ini', который скрывает ошибки. Используйте 'ini_set ('display_errors', 1)' и 'error_reporting (E_ALL)', чтобы показать все (но не версию для релиза!). Однако он может работать правильно. – Ben

ответ

2

query выполняет запрос немедленно. Метод, который вы хотите использовать, - prepare. Вы также должны позвонить execute после того, как параметры привязаны.

$stmt = $dbh->prepare($query); 
$stmt->bindParam(":hash", $value); 
$stmt->execute(); 

В случае отказа PDO вы должны, вероятно, также включить отчет об ошибках.

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
+0

Я хочу только получить единственный столбец результатов в строке – Ray

+1

@Ray См. Документацию для ['fetchColumn'] (http://us1.php.net/manual/en/pdostatement.fetchcolumn.php) - они используют' execute' сначала в своих примерах. –

+0

Полностью рассмотрел тот факт, что я использовал запрос. благодаря – Ray

Смежные вопросы