2

PHPを使用して、SQLite3 dbからJSON配列にデータを変換しようとしています。近づいているのですが、うまくいかないようです。

これは私が得ているエラーです: PHP 警告: PDOStatement::fetchAll() はパラメーター 1 が長いことを期待しています。

ありがとう!

<?php
$db = new PDO('sqlite:example.db');

$result = $db->query('SELECT * FROM test');

$json = array();

$result->setFetchMode(PDO::FETCH_ASSOC);

while ($data = $result->fetchall($result)){

$x = $data['Time'];
$y = $data['Temperature'];

$json[] = array( (int($x)), (int($y)) );
}
?>
4

3 に答える 3

4

動作するようになりました。ご協力いただきありがとうございます!

<?php

$db = new PDO('sqlite:example.db');

$result = $db->query('SELECT * FROM test');

$datapie = array();

$result->setFetchMode(PDO::FETCH_ASSOC);

while ($row = $result->fetch()) {

extract($row);

$datapie[] = array(floatval($Temperature), $Time);
}

$data = json_encode($datapie);

?>
于 2013-05-20T08:57:15.130 に答える
1

変化する:

$result->fetchall($result)

に:

$result->fetch()

2 つの問題がありました: への引数fetchAll()は、結果ではなくフェッチ モードでなければなりません。一度に 1 行ずつではなく、fetchAll()すべての行を返します。ループで呼び出している場合は、を使用しますfetch()

于 2013-05-18T09:46:02.570 に答える
0

PDO の fetchAll 関数は、クエリ自体をパラメーターとして想定していません。

ここでマニュアルを確認してください。空白のままにするか、フェッチモードを設定できます。

http://php.net/manual/en/pdostatement.fetchall.php

于 2013-05-18T09:43:50.843 に答える