>  기사  >  PHP 프레임워크  >  Thinkphp가 데이터 테이블 이름의 대소문자를 인식하지 못하고 문제를 해결할 수 없습니다.

Thinkphp가 데이터 테이블 이름의 대소문자를 인식하지 못하고 문제를 해결할 수 없습니다.

尚
앞으로
2020-05-02 09:00:373062검색

Thinkphp가 데이터 테이블 이름의 대소문자를 인식하지 못하고 문제를 해결할 수 없습니다.

얼마 전 thinkphp를 처음 접했을 때, 처음 사용할 때 데이터베이스 테이블 이름 대소문자에 문제가 있었습니다. 기본적으로 thinkphp는 모든 대문자를 소문자로 변경하고 중간에 _ 기호를 추가합니다.

나중에 소스코드를 수정했더니 정상적으로 실행이 됐는데, 어떻게 바꿨는지 잊어버릴 정도로 시간이 오래 걸렸어요. 여기서는 구체적인 구현 단계 없이 솔루션에 대해서만 설명합니다.

오류 코드:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
           $result=M(&#39;Praise&#39;);
        $a=$result->select();
        var_dump($a);
        die;
        $this->display();
    }
}

오류는 다음과 같습니다

1146: 테이블 'MovierDC.praise'가 존재하지 않습니다. [SQL 문]: SHOW COLUMNS FROM 칭찬

온라인에서 설명을 찾아 구성 항목을 수정했습니다.

&#39;DB_PARAMS&#39; => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),

나중에 어떤 사람들은 다른 사람의 질문에 대답하기 위해 복사하여 붙여넣고 실수를 한다는 것을 알게 되었습니다. 이는 대소문자를 구분하지 않는 구성 테이블 필드입니다.

구성 테이블 이름에 대한 구성 항목을 찾을 수 없습니다. 그래서 소스코드에서 직접 시작했는데(에러리포트 중심) 주로 두 가지 함수로 하나는 모든 문자를 소문자로 변환하는 함수이고, 다른 하나는 분할해서 재구성하는 함수입니다. 소문자로 변환된 함수, 분할되어 재구성된 함수를 제거하세요. 마침내 작동합니다.

추천 튜토리얼: "TP5"

위 내용은 Thinkphp가 데이터 테이블 이름의 대소문자를 인식하지 못하고 문제를 해결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제