2016-10-08 5 views
0

Webサービスでデータを取得しようとしました(http://api.rajaongkir.com/dokumentasi/starter)。そして、私はビューブラウザでデータを表示して成功しました。私は多くのデータベースに何か間違って何かを挿入するための実装時に間違っています。どうしてか分かりません。バッチyii2エラーでWebサービスを使用してデータベースにデータを挿入

ウェブサービスのデータを取得するためのこのコードはhttp://api.rajaongkir.com/dokumentasi/starterです。そして/コントローラに

public function actionGetProvince($id=0) 
    { 
     $client = new client(); 
     $addUrl = ($id>0)?'id='.$id:''; 
     $response = $client->createRequest() 
        ->setFormat(Client::FORMAT_JSON) 
        ->setMethod('get') 
        ->setUrl('http://api.rajaongkir.com/starter/province?'.$addUrl) 
        ->addHeaders(['key' => 'example']) 
        ->send(); 
     if ($response->isOk) { 
      $content = \Yii\helpers\Json::decode($response->content); 
      //$content['rajaongkir']['query'] 
      //$content['rajaongkir']['status'] 
      $results = $content['rajaongkir']['results']; 
      if ($id > 0) { 
       if (count($results)>0) { 
        echo $results['province_id'] . ' - '; 
        echo $results['province'] . '<br>'; 
       } 
       else { 
        echo "blank"; 
       } 
      } else { 
       foreach ($results as $provinces) { 
        echo $provinces['province_id']." - ".$provinces['province']."<br>"; 
       } 
      } 
     } else { 
      $content = \Yii\helpers\Json::decode($response->content); 
      echo $content['rajaongkir']['status']['description']; 
     } 
    } 

TestController.php

と、データベース内の多くの挿入データのためにこのコードを入れて、私は同じファイルに入れました。

Yii::$app->db->createCommand()->batchInsert('province', [ 
      'id_province' => $provinces['province_id'], 'name' => $provinces['province'] 
      ])->execute(); 

と結果のエラーは次のとおりです。

PHPの警告 - のYii \ベースの\ ErrorException:Yiiの\ DB \コマンドの引数がありません3 :: batchInsert()、Cで呼び出さ:\ WAMP \ www \ basic_yii2 \ controllers \ TestController.php 60行目で定義済み

+0

はこれにしてみてください。 Yui :: $ app-> db-> createCommand() - > batchInsert( '都道府県'、['id_province'、 'name']、[$ provinces ['province_id']、$ provinces ['province']]) - > execute(); –

答えて

1

batchInsert()は正しく呼び出されていません。

documentationでご覧ください。

public $this batchInsert ($table, $columns, $rows) 

$テーブルstring新しい行が挿入されますテーブル。
$列array列名
$行arrayバッチがテーブルに

例に挿入される行:

$connection->createCommand()->batchInsert('user', ['name', 'age'], [ 
    ['Tom', 30], 
    ['Jane', 20], 
    ['Linda', 25], 
])->execute(); 
関連する問題