我正在嘗試使用php api在大查詢中創(chuàng)建一個(gè)表。我可以創(chuàng)建一個(gè)沒(méi)有架構(gòu)的表,但是當(dāng)我提供架構(gòu)時(shí),我會(huì)收到錯(cuò)誤??雌饋?lái)我使用了錯(cuò)誤的語(yǔ)法,但是我嘗試了我能想到的任何格式,但找不到我想要實(shí)現(xiàn)的目標(biāo)的任何示例。我使用字符串文本作為用于測(cè)試的字段參數(shù)。我的代碼看起來(lái)像這樣: $bigQuery = new BigQueryClient([ 'keyFilePath' => [keyfilepath], 'projectId' => [projectid], 'location' => [location] ]); /** @var Dataset $dataSet */ $dataSet = $bigQuery->dataset('my-data-set'); $fieldString = '{"name": "myfield","type": "STRING","mode": "REQUIRED"}' . "\n" . '{"name": "anotherfield", "type": "STRING", "mode": "REQUIRED"}'; $options = [ 'fields' => $fieldString ]; $dataSet->createTable('mytable', $options);這給出了錯(cuò)誤:“字段選擇無(wú)效 {\”名稱“:”我的字段“”或者,當(dāng)我像這樣格式化“$fieldString”時(shí):$fieldString = '[{"name": "myfield","type": "STRING","mode": "REQUIRED"}, {"name": "anotherfield", "type": "STRING", "mode": "REQUIRED"}]';我收到錯(cuò)誤:無(wú)效的字段掩碼“[{\”name\“:”myfield“,”類型“:”字符串“,”模式“:”必需“},{”名稱“:”另一個(gè)字段“,”類型“:”字符串“,”模式“:”必需“}}”。映射鍵應(yīng)表示為 [\“some_key\”]。我還嘗試先創(chuàng)建表,然后像這樣更新它:$table = $dataSet->createTable('mytable');$table->update($options);但我得到同樣的錯(cuò)誤。即使我使用與此處完全相同的 json 表示形式,問(wèn)題仍然存在。我在這里做錯(cuò)了什么?更新:實(shí)際上,在我切換到字段的字符串文本之前,我首先嘗試了以下方法: $fields = [ ['name'=> 'myfield', 'type' => 'INTEGER', 'mode' => 'REQUIRED'], ['name'=> 'anotherfield', 'type' => 'INTEGER', 'mode' => 'REQUIRED'] ]; $options = [ 'schema' => $fields ]; $dataSet->createTable('mytable', $options);這將產(chǎn)生錯(cuò)誤:“收到的 JSON 有效負(fù)載無(wú)效?!氨怼敝械奈粗Q“架構(gòu)”:Proto 字段不重復(fù),無(wú)法啟動(dòng)列表。然后我編輯了代碼,如下所示: $fields = [ ['name'=> 'myfield', 'type' => 'INTEGER', 'mode' => 'REQUIRED'], ['name'=> 'anotherfield', 'type' => 'INTEGER', 'mode' => 'REQUIRED'] ]; $options = [ 'fields' => $fields ]; $dataSet->createTable('mytable', $options);這給出了:警告:原始代碼()期望參數(shù) 1 是字符串,數(shù)組給定我之前在我的問(wèn)題中沒(méi)有提到這一點(diǎn),因?yàn)槲艺J(rèn)為這無(wú)關(guān)緊要。事后看來(lái),這可能是,但我的問(wèn)題仍然存在。
使用帶有架構(gòu)的 PHP API 在大查詢中創(chuàng)建表
至尊寶的傳說(shuō)
2022-09-17 15:36:25