얼마 전 thinkphp를 처음 접했을 때, 처음 사용할 때 데이터베이스 테이블 이름 대소문자에 문제가 있었습니다. 기본적으로 thinkphp는 모든 대문자를 소문자로 변경하고 중간에 _ 기호를 추가합니다.
나중에 소스코드를 수정했더니 정상적으로 실행이 됐는데, 어떻게 바꿨는지 잊어버릴 정도로 시간이 오래 걸렸어요. 여기서는 구체적인 구현 단계 없이 솔루션에 대해서만 설명합니다.
오류 코드:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $result=M('Praise'); $a=$result->select(); var_dump($a); die; $this->display(); } }
오류는 다음과 같습니다
1146: 테이블 'MovierDC.praise'가 존재하지 않습니다. [SQL 문]: SHOW COLUMNS FROM 칭찬
온라인에서 설명을 찾아 구성 항목을 수정했습니다.
'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),
나중에 어떤 사람들은 다른 사람의 질문에 대답하기 위해 복사하여 붙여넣고 실수를 한다는 것을 알게 되었습니다. 이는 대소문자를 구분하지 않는 구성 테이블 필드입니다.
구성 테이블 이름에 대한 구성 항목을 찾을 수 없습니다. 그래서 소스코드에서 직접 시작했는데(에러리포트 중심) 주로 두 가지 함수로 하나는 모든 문자를 소문자로 변환하는 함수이고, 다른 하나는 분할해서 재구성하는 함수입니다. 소문자로 변환된 함수, 분할되어 재구성된 함수를 제거하세요. 마침내 작동합니다.
추천 튜토리얼: "TP5"
위 내용은 Thinkphp가 데이터 테이블 이름의 대소문자를 인식하지 못하고 문제를 해결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!