当前位置: 首页 > 知识库问答 >
问题:

SQLSTATE[42S22]:未找到列:1054 php中的未知列

终翰学
2023-03-14

我正在制作一个我想登录和注册的应用程序,并且能够将csv文件导入数据库,注册和登录工作正常,但是当我想导入csv时,我遇到了这个问题:

错误luminate\Database\QueryException SQLSTATE[42S22]:未找到列:1054“where子句”中的未知列“classe”(SQL:select*fromaccountswhere(classe=7和nocompte=7598)限制1)科目表

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateAccountsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('accounts', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('AccountClass');
            $table->integer('AccountNumber');
            $table->string('AccountDesc');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('accounts');
    }
}

账户控制员

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Accounts;
class AccountController extends Controller
{
    public function show(){
        return view ('upload');
    }
    public function store(Request $request){
        $upload = $request->file('upload-file');
        $filePath = $upload->getRealPath();
        $file = fopen($filePath,'r');
       $fileconverted =  mb_convert_encoding($file, 'UTF-16LE', 'UTF-8');
        $header = fgetcsv($file);
        // dd($header);
        $escapedHeader = [];
        foreach ($header as $key =>  $value){
            $header1=strtolower($value);
            $escapedItem=preg_replace('/[^a-z]/', '' ,$header1);

array_push($escapedHeader,$escapedItem);
        }
        while($columns=fgetcsv($file)){
            if($columns[0]==""){
                continue;
            }
           //trim data
           foreach ($columns as $key => &$value) {
            $value=preg_replace('/\D/','',$value);
        }
       $data= array_combine($escapedHeader, $columns);
    //    dd($data);
        }
        $AccountClass = $data['classe'];
        $AccountNumber = $data['nocompte'];
        $AccountDesc =  $data['libell'];
        $Accounts= Accounts::firstOrNew(['classe'=>$AccountClass,'nocompte'=>$AccountNumber]);
        $Accounts->AccountClass=$AccountClass;
        $Accounts->AccountNumber=$AccountNumber;
        $Accounts->AccountDesc=$AccountDesc;

        $Accounts->save();


    }
}

共有1个答案

孙言
2023-03-14

您告诉它查询“accounts”表,查找名为'classe'的字段:

Accounts::firstOrNew(['classe'=>$AccountClass,'nocompte'=>$AccountNumber]);

也许你是说会计班?

Accounts::firstOrNew(['AccountClass' => $AccountClass, ...]);

调整后,您将遇到与'nocompte'相同的错误,该表中也不存在该错误。。。

 类似资料:
  • 我使用的框架Laravel。 我有两个表(用户和成员)。当我想登录时,我会收到错误消息: SQLSTATE[42S22]:找不到列: 1054未知的列'user_email'in'where子句'(SQL:选择*fromwhere=?限制1)(绑定:数组(0= 表用户 表成员 迁移用户 移民成员 模型用户 模范会员 成员模型使用:使用照明\Auth\UserInterface; 控制器 auth.

  • 我是编程界的新手,我自己在学习laravel,我发现了这个错误:SQLSTATE[42S22]:Column not found:1054未知列'clientes.clientes\u id'在'where子句中(SQL:select*fromwhere=1和不为空)(视图:/shared/httpd/laravel_8_crud/resources/views/pedidos/index.bla

  • 我正在尝试使用PDO向MySQL插入一条记录,下面的代码中可以看到我的sql语句。 当执行此代码时,我会遇到以下错误消息; SQLState[42S22]:找不到列:1054“Field List”中的未知列“John” 这无疑是解决这个问题的一个简单方法,但我似乎看不出来,有人能给我指明正确的方向吗?

  • 我的代码:数据库中的值未更新,出现以下错误: (照明\数据库\查询异常(42S22)SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum))和("SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum)

  • 关于,我正在使用主键=idusuarios的同一视图更新一个名为usuarios的表,insert使我完美地解决了问题,因为当我要更新时,它会生成错误 SQLSTATE[42S22]:找不到列: 1054未知列'usuarios.id'in'where子句'(SQL: Select*fromwhere. 这是我的密码 模型 类Usuario扩展模型{ 另一张表的模型 控制器 公理

  • 问题内容: 我正在使用Laravel框架。 我有2个表(用户和成员)。当我想登录时,收到错误消息: SQLSTATE [42S22]:找不到列:1054’where子句’中的未知列’user_email’(SQL:select * from where =?limit 1)(绑定:数组(0 =>'test@hotmail.com‘,)) 表用户 表成员 迁移用户 移民会员 模型使用者 模范会员 成