1. 程式人生 > >ThinkPHP查詢資料的時候,自動把欄位名的大寫切換成小寫的問題!

ThinkPHP查詢資料的時候,自動把欄位名的大寫切換成小寫的問題!

前幾天心血來潮把以前寫的一個專案翻出來看看,可是沒有資料庫,只有根據程式碼提示不斷的重建資料庫。在這個過程中,發現自己在資料庫裡定義為大寫的欄位,在查詢和判斷的時候,報錯說怎麼也找不到,後來經過列印資料的時候才發現,查詢以後,ThinkPHP自動把我定義為大寫的欄位轉換為小寫了。

本來以為這是ThinkPHP框架一個不可改的問,結果今天無聊在網上查詢,發現早有大神發現並解決了這個問題。以上問題出現的原因,是因為ThinkPHP升級到3.23版本之後,在核心檔案(ThinkPHP\Library\Think\Db\Driver.class.php)67行中,有關於查詢時對欄位大小寫的查詢定義:

原始碼:PDO

::ATTR_CASE =>  PDO::CASE_LOWER

此時,我們只需要將該行程式碼改為:PDO::ATTR_CASE =>  PDO::CASE_NATURAL   就好了!

如果要將欄位名全都改為大寫:我們只需要將該行程式碼改為:PDO::ATTR_CASE =>  PDO::CASE_UPPER  就好了!

原問地址::http://www.thinkphp.cn/topic/26801.html

相關推薦

ThinkPHP查詢資料的時候自動大寫切換小寫的問題

前幾天心血來潮把以前寫的一個專案翻出來看看,可是沒有資料庫,只有根據程式碼提示不斷的重建資料庫。在這個過程中,發現自己在資料庫裡定義為大寫的欄位,在查詢和判斷的時候,報錯說怎麼也找不到,後來經過列印資料的時候才發現,查詢以後,ThinkPHP自動把我定義為大寫的欄位轉換為小

oracle-查詢資料其中指定重複的只取其中一條

今天學了一句sql和大家分享一下: oracle資料庫,情景:表(客戶-業務員)中資料都不完全重複,但是可能多條資料其中某些欄位重複。我想要取得表中符合條件的記錄,但是這些記錄中的客戶id和客戶名稱發生重複的話只能留一個。 如上圖我想找出“馮冬梅”負責的

簡單查詢資料庫減輕多表及資料庫壓力

最近在查詢標籤收費記錄時,要在列表中顯示車牌號資訊,而車牌號資訊在標籤資訊記錄表中,於是需要查詢標籤資訊記錄,最原始的做法: 獲取分頁的一頁記錄資料,迴圈遍歷得出標籤收費記錄物件,然後通過標籤收費記錄中的標籤ID來查詢標籤資訊物件,儲存在List物件中: List v

mysql必知必會--學習筆記(8)--子查詢 where巢狀查詢語句作為計算使用子查詢

1、子查詢的查詢過程一般是通過where中的in操作符來完成,in後面跟上一個子查詢,通常in之前的列名和子查詢查詢出來的列名是一致的。例如select name from book where id in (select book_id from store where s

踩了個坑:go json.Marshal時結構體需要大寫

       來看看: package main import ( "encoding/json" "fmt" ) type Header struct { FileName string Host string offset

C# 如何獲取SQL Server 中指定資料表的所有型別

如何獲取指定資料表的所有欄位名和欄位型別。SqlConnection.GetSchema方法有2個過載形式,獲取指定資料表的所有欄位名和欄位型別的祕密就在GetSchema (String, String[])的第二個引數中。 定義如下: public override DataTable GetS

在Mybatis中解決資料庫與java實體類屬性不一致的三種方式

在使用Mybatis來持久化資料庫時,有時候會碰到資料庫中表中的欄位與java實體類中屬性名不一致的情況,在這種情況下Mybatis是不能完成欄位的自動對映的。而通常情況下,資料庫及實體類是不應該被改的的。所以要在不改變資料庫以及實體類的情況下解決這個問題,下面是解決該問題

MyBatis的問題:There is no getter for property named '資料表中的' in '實體類'

在MyBaits中的配置檔案中:mybaits-config.xml中有這樣一句話:在程式碼中用紅色標註:<?xml version="1.0" encoding="UTF-8"?> <

asp.net core mvc api 返回結果的json大寫小混亂的問題解決

解決方法:在Startup的ConfigureServices方法里加上下面的紅色部分。 public IServiceProvider ConfigureServices(IServiceCollection services) { servi

Python查詢MySQL資料並提取mysql轉化成DataFrame

今天覆習一下,用python操作mysql以及excel,並且作為橋樑,連線mysql,excel. 那麼既然用到了python操作資料就不免需要用到dataframe做資料分析,本文主要一個麻煩點在於從mysql 中獲取到的資料沒有欄位名, 下面直接上程式碼: import pymys

ireport報表製作 當一個顯示的資料太多時(資料過長)則需要自動換行

1、當一個欄位顯示的資料太長,一個表格放不下,則需要自動換行,選中要更改的表格(要顯示動態內容的欄位),設定屬性Stretch with overflow 為鉤選狀態。 未勾選之前:   勾選之後:   2、但是,表格出現斷層的情況

Oracle 查詢庫中所有表說明查詢表的資料條數、表、中文表

查詢所有表名: select t.table_name from user_tables t; 查詢所有欄位名: select t.column_name from user_col_comments t; 查詢指定表的所有欄位名: select t.column_nam

sql語句查詢中包含指定字串的資料列表完全匹配中逗號中間的字串資料

查詢出,使用者表中name欄位完全包含小明的資料資訊 User表 id name userInfo 1 小明,明明 很帥 2 小明,李明 3 明天,李強 SELECT * FROM `User` where concat(',

js裡的sort()對json資料(某一)進行排序超實用

首先來看一下接口裡的資料,對哪一資料進行操作 { "hourList": [{ "DATA_DATE": "00", "USE_SUM": 9.58 }, { "DATA_DATE": "03", "USE_SUM": 23.18 }, { "DATA_DATE": "

查詢:對某一去重並獲得其他資訊

想在table1表中,查公司中的員工名字有哪些,table1表中員工有重名的情況,所以要對員工名去重,並且要得到員工名字、及其對應的部門號dept_id 即:對name欄位去重,並獲得name, dept_id 欄位 在thinkphp3.2 中 $table1= M('table1

查詢當日資料 按小時分組 是varchar型別時

select SUBSTR(tjsd,1,10),sum(clzs) from jtts.T_DTI_STAT_XZQH_CLL_LASTHOUR where 1=1 and to_char(to_date(tjsd,‘yyyymmddhh24mi’),‘dd’)=to_char(sysda

es:實現查詢某個為固定值另一個必須不能存在

要求:查詢出 positionName為空,hasJobRequest為1的資料   也可以嘗試用must ,must_not ,exist: {   "query": {     

關於MongoDB中如何做到對已有資料插入時更新不存在時則插入新的Document

背景需求: * 比如我們有這樣一個需求,有兩個excel中的資料,需要插入到資料庫中,這個兩個excel中的資料有些欄位都是一樣的,比如本例所寫的,電臺名稱是一樣的,省市縣也是一樣的,而不一樣的是

mybatis動態傳入表查詢條件進行查詢

mybatis動態傳入表名,欄位名,查詢條件進行查詢 菜鳥一枚,不足之處請多多指出 BaseMapper.xml // BaseMapper.xml <select id="findByFiled" resultType="java.util.Map" statementT

Sql Server 2008獲取表的註釋型別描述等程式碼自動生成必備

SELECT 表名 = case when a.colorder=1 then d.name else ” end, 表說明 = case when a.colorder=1 then isnull(f.value,”) else ” end,