DBにクエリを実行する際に構文を混在させました。
このquery()
メソッドは、目的のクエリを作成して実行します。最初のクエリは結果を返す必要があり、それ以上のコードを提供する必要はありません。
$avg_query = $db->query("SELECT sid, AVG(score) FROM markstable GROUP BY sid");
Zend_debug::dump($avg_query);//same as var_dump but already includes <pre> tags
2番目のクエリでは、2番目の引数として配列にバインドされた値を含める必要があります。
$avg_query = $db->query("SELECT sid, AVG(score) FROM markstable WHERE sid = ?", array($sid);
Zend_debug::dump($avg_query);//same as var_dump but already includes <pre> tags
SQLを文字列として渡すだけで、標準のフェッチメソッドを使用してこのクエリを実行することもできます。
$avg_score = $db->fetchAll("SELECT sid, AVG(score) FROM markstable GROUP BY sid");
Zend_debug::dump($avg_score);//same as var_dump but already includes <pre> tags
コンポーネントを扱うときは、古いスタイルの構文が多くのコンポーネントで非推奨になっているため、Zend_Db
クエリ()でプレースホルダーを使用することに慣れているかもしれません。?
これはおそらくあなたがしていることに対する最善の解決策ではありません。しかし、それはあなたの質問に答えます。Zend Frameworkでデータベースを操作する方法はかなり多数あり、Zend_Db_Adapter
コンポーネントとメソッドを使用することは、通常、タスクを実行するための最良の方法ではありません。