ホームページ >バックエンド開発 >PHPチュートリアル >Thinkphp データベーステーブル名の大文字と小文字の区別の問題

Thinkphp データベーステーブル名の大文字と小文字の区別の問題

WBOY
WBOYオリジナル
2016-06-20 12:38:212153ブラウズ

これは私のコントローラーのコードです

<?phpnamespace 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 `praise`
私のテーブル名は正しく、データベース内にすべて小文字のテーブルがあり、クエリは正常であると述べておきます。最初の文字を大文字にするのは機能しません

以下は私が試した方法ですが、機能しませんでした
'DB_PARAMS' => array(PDO::ATTR_CASE => PDO::CASE_NATURAL) ,

同様の問題とその解決方法に遭遇したことがありますか?仕事を探しています!


ディスカッションへの返信 (解決策)

windows あり問題ありません
Linux では言うのは難しいです

'DB_PARAMS' => array(PDO::ATTR_CASE => PDO::CASE_NATURAL),

' DB_PARAMS' => array(PDO::ATTR_CASE => PDO::CASE_NATURAL),
この設定では、フィールド名の大文字と小文字が区別されません。テーブル名としては無効です。

これは、thinkphp のデフォルトのすべてのテーブル名の小文字への変換で、大文字が大文字の間で分割され、_ で接続され、大文字が小文字に変更されます。
設定テーブル名に関する設定項目が見つかりません。そこで、ソース コードから直接開始し、小文字に変換された関数と分割され再編成された関数を削除しました。ようやくうまくいきました。

CSDN にアクセスして自分で投稿を完了するまでにとても時間がかかりました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。