-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:

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 に答える