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

Posted

技术标签:

【中文标题】Laravel 查询错误 - 调用未定义的方法 Illuminate\\Database\\Query\\Builder::query()【英文标题】:Laravel Query Error - Call to undefined method Illuminate\Database\Query\Builder::query()Laravel 查询错误 - 调用未定义的方法 Illuminate\Database\Query\Builder::query() 【发布时间】:2018-12-06 10:40:00 【问题描述】:

我想从 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';
   

【问题讨论】:

添加使用数据库;然后尝试使用 DB::table 而不是 \DB 【参考方案1】:

query() 方法不是来自构建器实例。它在Illuminate\Database\Connection 类中。使用 DB 门面 (use Illuminate\Support\Facades\DB;) 插入您想要的信息。

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

【讨论】:

【参考方案2】:

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

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

dd($insert)

【讨论】:

以上是关于Laravel 查询错误 - 调用未定义的方法 Illuminate\Database\Query\Builder::query()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 分页错误——调用未定义的方法 stdClass::links()

Laravel FFmpeg 错误调用未定义的方法 FFMpeg\FFMpeg::fromDisk()

Laravel 5.2 单元测试错误:BadMethodCallException:调用未定义的方法 Illuminate\Database\Query\Builder::make()

Laravel4 数据库播种器错误 - 调用未定义的方法 SeedDummyOrders::setContainer()

Laravel 调用未定义的方法。方法存在

Laravel:调用未定义的方法 Illuminate\\Database\\Query\\Builder