我已尝试在http://api.rajaongkir.com/dokumentasi/starter获取网络服务中的数据。我在视图浏览器中成功显示数据。当我实现插入数据与很多数据库的东西有什么不对。我不知道为什么。
此代码用于在http://api.rajaongkir.com/dokumentasi/starter的Web服务中获取数据。并放入controllers / TestController.php
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'];
}
}
这个代码用于在数据库中插入大量数据,并且我将文件放在同一个文件中。
Yii::$app->db->createCommand()->batchInsert('province', [
'id_province' => $provinces['province_id'], 'name' => $provinces['province']
])->execute();
结果错误是:
PHP警告 - yii \ base \ ErrorException:缺少yii \ db \ Command :: batchInsert()的参数3,在第60行的C:\ wamp \ www \ basic_yii2 \ controllers \ TestController.php中调用并定义
答案 0 :(得分:1)
您没有正确调用batchInsert()
。
在documentation中查看。
public $this batchInsert ( $table, $columns, $rows )
$ table string
新行将插入的表格
$ columns array
列名称
$ rows array
要批量插入表格的行
示例:
$connection->createCommand()->batchInsert('user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
])->execute();