Flash Builder -> データサービスのエラー

Posted by muchag | Flash Builder 4,PHP |
初回投稿:2010-07-23 (金) 21:40:02 | 最終更新:2010-07-31 (土) 21:36:38

またやられた・・・。
PDO が上手く動作しない。

Server error Variable number of arguments is not supported for services (except optional parameters).

Number of function arguments must correspond to actual number of arguments described in a docblock.

引数の数が合わないって?
PHP のみではちゃんと動くのに~!

なんでだろ~ぉ なんでだろ~ ななななんでだろ~・・・。 😯
 

解決

あれこれやってみて、分かったかも・・・。

引数の数が合わない って書いてあるので数を合わせたらエラーが出ない。

  1. public function example($array = array()) {
  2.     $sql = "UPDATE table SET name=? WHERE id=?";
  3. }

これが問題だったらしい。

プレースホルダが2個あるのに
関数の引数は1個しかねーだろーがー!

そんなエラー言われてもね・・・こっちが 👿
配列で送ってるんだからええやんか~!

PDO と全然関係なかった。
 

新たな疑問

引数が合わないっていうなら、合わせますよ、合わせりゃいいんでしょ?

と投げやりな気持ちで、上記コードに $dummy を足してみた。
無論中身なし。

  1. public function example($array = array(), $dummy) {
  2.     $sql = "UPDATE table SET name=? WHERE id=?";
  3. }

これでデータサービスについてはエラーはでなくなった。

そこで サービスの生成 をして続けようとしたら

1067: 型 Array の値が、関連しない型 valueObjects:Array に暗黙で型変換されています。 Flex の問題

???

も、もしかして、サービスへの引数に配列は使えない?

入力値の設定 では、ちゃんと Array が選択肢にあるのに?
 

解決法

一応解決方法を見つけた。

Array 型 ではなく、Object 型 で送ればエラーにはならない。

Actionscript 3.0 on Flex 4

  1. var myArray:Array = new Array();
  2. var myObject:Object = new Object();
  3.  
  4. myObject.id = 1;
  5. myObject.name = "hoge";
  6.  
  7. myArray.push(myObject);
  8.  
  9. updateResult.token = test.update(myArray, 0, 0);

そして、「入力値の設定」で myArray を Object 型 に設定する。
 
 
これで一応は目的を達せられたが、相変わらず引数の個数の問題は残る・・・。

Posted by muchag | Flash Builder 4,PHP |
初回投稿:2010-07-23 (金) 21:40:02 | 最終更新:2010-07-31 (土) 21:36:38

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment