当数千时,如何从字母表中选择*返回一行?

时间:2013-12-20 06:30:41

标签: php postgresql pdo

我已经仔细检查了表格中的所有内容。我在单词表中已有大约40,000条记录。

我做了什么:

const DB_HOST='localhost';
const DB_NAME='games';
const DB_USER='postgres';
const DB_PASS='1234';
$instance = new PDO('pgsql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$schemas = '"alphabet","public","grammars"';
$instance->exec("SET search_path TO $schemas");    
$stmt = $instance->prepare('SELECT word FROM alphabet');
$stmt->execute();
$words = $stmt->fetch();

现在用$ words我只有第一张唱片!当我将此查询SELECT word FROM alphabet放入phppgAdmin时,将返回所有40,000个单词。

我有什么想念的吗?任何建议将不胜感激。

NB:我已逐行使用netbeans调试我的代码,所以我很确定只返回了一条记录。

2 个答案:

答案 0 :(得分:2)

fetch:从结果集中获取下一行。

fetchAll:返回包含所有结果集行的数组

所以你需要的是fetchAll或在循环中使用fetch。

$words = $stmt->fetchAll();

答案 1 :(得分:1)

您需要使用fetchAll()来返回所有项目。 fetch()将返回第一条记录,并用于循环遍历所有记录,例如:

 while($data = $stmt->fetch()){}