Laravel查询错误-调用未定义的方法Illuminate \ Database \ Query \ Builder :: query()

时间:2018-12-06 10:40:00

标签: php mysql csv laravel-5 import-from-excel

Id想从CSV文件中插入一些数据,但是当我上传它们时会出现错误报告。 在laravel或PHP中做到这一点的最佳方法是什么。 enter image description here

public function uploadFile(Request $request){

  $conexao = \DB::table('tb_pwbi_analytics_acesso');

  $arquivo = $_FILES['file']['tmp_name'];
  $nome = $_FILES['file']['name'];

  $ext = explode(".", $nome);
  $extensao = end($ext);

  if ($extensao != 'csv') {
    echo 'extenso invalida';

  }else{
    $objeto =fopen($arquivo, 'r');       
    while (($dados = fgetcsv($objeto,1000,";")) !== FALSE) {
    $regional = utf8_encode($dados[0]);
    $uf = utf8_encode($dados[1]);
    $anf = utf8_encode($dados[2]);
    $localidade = utf8_encode($dados[3]);
    $ibge = utf8_encode($dados[4]);
    $ativo = utf8_encode($dados[5]);


    $result = $conexao->query("INSERT INTO tb_pwbi_analytics_acesso (regional, uf, anf, localidade, ibge, ativo) VALUES('$regional',' $uf','$anf','$localidade', '$ibge','$ativo')");

   }if($result){
    echo 'Dados inseridos com sucesso!';
   }else{
    echo 'Erro ao inserir os dados';
   }
}

2 个答案:

答案 0 :(得分:1)

方法query()并非来自构建器实例。它在Illuminate\Database\Connection类中。使用数据库外观(use Illuminate\Support\Facades\DB;)插入所需的信息。

DB::table('tb_pwbi_analytics_acesso')->insert(
    [
    'regional' => $regional,
    'uf' => $uf,
    // and so on
    ]
);

答案 1 :(得分:0)

您可以使用查询生成器,但是放置的表单是错误的。根据文档插入新记录的正确方法

$attributes = [
     'name'   =>   'Name X'
     'email'  =>   'email@x.com'
]
$insert = \DB::table('tb_pwbi_analytics_acesso')->create($attributes);

dd($insert)