-1

因此,我将一些代码合并在一起,试图在 php/mysql 中准备好 PDO 语句。

一切都在运行,因为页面没有出错,但我似乎无法将查询结果拉到 html 中的“回显”,我不知道我错过了什么。

这是我之前的代码<head>

try {  
    # MySQL with PDO_MYSQL  
    $pdo = new PDO("mysql:host=$hostname_db;dbname=$database_db", $username_db, $password_db);  
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    // writ the query
    $stmt = $pdo->prepare('SELECT * FROM table WHERE id = ?');  
    $stmt -> execute(array($rid));
    $row_count = $stmt->rowCount();
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

}  
// Error message for pdo
catch(PDOException $e) {  
    echo $e->getMessage();  
}  

然后在页面的 html 中,我试图查看这样的结果:

<body>
<p>Hello</p>
<p><?php echo $results['field1']; echo ', row count: '.$row_count;?></p>
</body>

$row_count 正确输入为 1,但我试图调用 'field1' 中的值,但什么也没有出现。

我错过了什么?

4

3 回答 3

1

PDO::fetchAll返回结果数组,即关联数组的数组。您可能想PDO::fetch改用。

于 2013-05-24T07:59:11.523 回答
0

获取所有文档

返回数组中的多行:array(row_1, row_2).

他们自己的行也是数组。

因此,您尝试访问不存在的行。所以你应该使用 fetch 或 foreach

拿来:

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

前锋:

foreach($results as $result){ 
  echo $result['field_1'];
}
于 2013-05-24T08:00:37.640 回答
0

改变这个: -

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

$results = $stmt->fetch();
于 2013-05-24T08:01:04.940 回答