※ ChatGPTを利用し、要約された質問です(原文:zendframework)
ZendFrameworkで誕生日データを元に年齢を更新する方法は?
このQ&Aのポイント
ZendFrameworkで、誕生日のデータを元に年齢を更新する処理を実行していますが、更新がうまくできません。該当するプレイヤーテーブルのnenreiフィールドに現在の年齢を設定したいのですが、実行結果が0件となってしまいます。
phpPgAdminで直接SQL文を実行すると正しく更新されるため、ソースコードに問題がある可能性があります。
ソースコードの問題点として、prepareメソッドを使用しているが、executeメソッドを呼び出していないことが考えられます。適切にexecuteメソッドを呼び出すことで、更新処理が正しく実行される可能性があります。
以下のテーブルの誕生日のデータを元にnenreiフィールドへ現時点の年齢を更新することをしたいのですが、
(phpでPostgreSQLを使用、フレームワークはZendFramework)
【player_tbl】
id ID
name 名前
birthday 誕生日(19950203のような形式でデータが入っています)
nenrei 計算された年齢を入れる
phpPgAdminで以下のSQL文を直接実行すると、問題なく更新されるのですが
UPDATE player_tbl
SET nenrei = extract(year from age(current_date, to_date(birthday,'YYYYMMDD') )) ;
ZendFrameworkで、以下のソースを実行すると、うまく更新できません。
$this->_db = DbManager::getConnection();
$sql = 'update player_tbl set ';
$sql .= "nenrei = extract(year from age(current_date, to_date(birthday, 'YYYYMMDD'))) ;";
$stt = $this->_db->prepare($sql);
$num = $stt->rowCount();
$numは0で返ってきて、更新は0件となります。
上記ソースコードは、何か間違っているでしょうか?。
お礼
すいません、確かにそうでした。 ありがとうございました