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()