2012-08-26 47 views
1

新的mysql和非常新的PDO - 但我试图学习大量的教程。PHP PDO选择语句不起作用

我试图抓住数据库中对应于用户ID的条目,然后使用它在配置文件页面上回显用户名等。

$stmt = $conn->query('SELECT * FROM clients WHERE id = 42'); 
$results = $stmt->fetchAll(PDO::FETCH_ASSOC); 

    // Content here... 

echo $results['firstname']; 

这是给我一个错误名字未定义 - 我究竟做错了什么?

工作过这个教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

回答

2

尝试去改变它:

$results = $stmt->fetch(PDO::FETCH_ASSOC) 

为您正在请求从数据库中单列,而不是一个阵列行

PDOStatement::fetchAll — Returns an array containing all of the result set rows 
PDOStatement::fetch — Fetches the next row from a result set 
+0

随着尊重,这将改变什么?你只是将它从fetchall更改为获取...? – Jonathan

+0

这实际上修复了它。我只是在研究Fetch和fetchall之间的区别 – cantaffordretail

+0

哇,我真的很震惊。 +1为了我。 @mcflause,我也建议检查一下准备好的语句。很有用。 – Jonathan