Symfonyフレームワークでデータを追加する際、
以下の様に値の設定メソッドの引数にSQLクエリを設定する又は、これに
類似する方法を探しています。
userテーブルの構造
|id|name|gender|custom_no|
|:--|:--:|:--:|-:-|
|主キー|名前|性別|会員番号|
php
1class userActions extends sfActions 2{ 3 // 省略 4 5 public function executeIndex() 6 { 7 $user = new User(); 8 $user->setName('名無し'); 9 $user->setGender('man'); 10 $user->setCustomNo(<ここにクエリを書きたい>); 11 12 }
<ここにクエリを書きたい> のSQLは以下になります。
SQL
1 2SELECT COUNT(*) + 1 AS cnt FROM custom_table
上記のような処理を行なう目的としてAUTO_INCRIMENT及びユニークの設定していない
カラムの重複を避ける為、また保存したデータのIDを取得が必要な為、このような
質問をさせて頂いた次第です。
上記の方法が不可能であれば、
PHP
1 $sql = "INSERT INTO user SET(name, gender, custom_no) VALUES(?, ?, SELECT COUNT(*) + 1 AS cnt FROM custom_table)"; 2 3 $c = Propel::getConnection(); 4 $stmt = $c->prepareStatement($sql); 5 6 $stmt->setString(1, '名無し'); 7 $stmt->setString(2, 'man'); 8 $stmt->executeQuery(); 9
上記にて保存したデータのidを取得する方法でも大丈夫です。
何卒ご教授をお願い致します。
あなたの回答
tips
プレビュー