1.使用翻頁類的時候,不能保持查詢條件翻頁
翻頁類本身有第三個參數,分頁跳轉的參數
* @param array $totalRows 總的記錄數
* @param array $listRows 每頁顯示記錄數
* @param array $parameter 分頁跳轉的參數
1.用get方式的話,不需要做任何設置,參數自動跟着URL走
2.用post需要在控制器裏把參數寫入到分頁類,然後生成對應的分頁代碼。
(以前試過查詢時把條件存進session,翻頁時用保存的值作爲查詢條件,並判斷條件對session進行更新,但那時沒弄成)
2.關於alert後刷新問題
如果是點擊按鈕後刷新,按鈕類型必須是botton纔不會刷新
3.在view頁面作判斷
在TP中{if xxxx} {elseif condition=”xxx”/}
後面必須加一個/
4.Thinkphp中 Volist 亂碼問題
(1)頁面的編碼設置錯誤
(2)輸出數組格式錯誤,比如是索引數組卻用鍵值輸出
find 查詢出來的值,是一維數組
select 查詢出來的值,是二維數組,第一層爲索引數組,第二層爲關聯數組
5.__PUBLIC__,圖片存放地址在數據庫
__PUBLIC__這種常量是需要通過php內核解析的,將其存進數據庫,先解析你的自定義變量後,就不會去解析取出來的__PUBLIC__了,所以不應把常量存數據庫
6.Lib 和TPl 中模版的不同,前者是實現的模版 php ,後者是顯示的模版html
dirname(__FILE__) php中定義了一個很有用的常數,即__file__這個內定常數是當前php程序的就是完整路徑(路徑+文件名)。即使這個文件被其他文件引用(include或require),__file__始終是它所在文件的完整路徑,而不是引用它的那個文件完整路徑。請看下面例子:/home/data/demo/test/a.php<?php$the_full_name=__FILE__;$the_dir=dirname(__FILE__);echo $the_full_name; //返回/home/data/demo/test/a.phpecho $the_dir; //返回/home/data/demo/test?>home/data/demo/b.php <?php include "test/a.php";echo $the_full_name; //返回/home/data/demo/echo $the_dir; //返回/home/data/demo/test而不是/home/data/demo/?>test/a.php 而不是/home/data/demo/b.php簡單地說:__FILE__ 返回當前路徑+文件名dirname(__FILE__) 返回當前文件路徑的路徑部分dirname(dirname(__FILE__));得到的是文件上一層目錄名(不含最後一個“/”號)例如,當前文件是/home/data/demo/test.php ,則__FILE__ 得到的就是完整路徑即 /home/data/demo/test.php ,而
dirname(__FILE__)得到路徑部分即/home/data/demo (後面沒有“/”號)
7.命名範圍的使用
<?php
class UserModel extends CommonModel{
protect $_scope=array(
/*命名範圍的標識名=>array(
'屬性'=>'值',
支持的方法有:where limit field order table page having group disinct),*/
);
}
1 /*'命名範圍的標識名'=>array(
'屬性'=>'值',
支持的方法有:where limitfield order table page having goup distinct
)*/
2 先在模型類中設置成一個數組並在常用的方法
3 然後在控制器中調用如where field order table pagehaving group distinct中使用
4 後面調用到的sql篩選條件會將前面的覆蓋,scope可以和普通連貫方法混合使用
如多次調用limit,只有最後一條limit生效
5 優點 一次定義多次調用
項目中項目主管定好名稱後可以讓多人分工合作時CURD操作不會混亂
8.過濾查詢之distinct方法
1 語法 distinct方法用來過濾相同信息,屬性爲true過濾和false不過濾
2 例子 $data=M('user')->distinct(true)->field('score')->order('scoreasc')->select();
9.union()用於合併兩個或多個 SELECT 語句的結果集
獲取user表 的字段,必須與 union() 中獲取的字段相同,對應字段的類型也要相同,順序也必須相同.
union() 的第二個參數默認 =false ,表示不會將重複數據隱藏; =ture ,表示將會隱藏重複數據
union() 可以進行連貫操作
字符串方法:
$data= M('user')->field('user_name,id')
->union('select user_name,id from wp_info');
數組方法:
$data= M('user')->field('user_name’)->
union(array('field'='user_name','table'='wp_info'),true);
10.多表查詢join()支持字符串和數組且join()中的表都必須加前綴(寫全稱)
字符串方式: M(‘user')->join('mk_userinfo Onmk_userinfo.user_id=mk_user.id')->select();
Left join 左關聯
Right join 右關聯
inner join 內聯(ThinkPHP3.2 默認採用 INNER JOIN 方式)
M('user')->join('Right join mk_userinfo Onmk_userinfo.user_id=mk_user.id')->select();
多表關聯添加join
數組方式: M('user')->join(array('mk_userinfo On mk_userinfo.user_id=mk_user.id'))-select();
11.使用phpexcle導入數據庫時,數據量過大造成的問題
(1)導入速度過慢,以致於超過原本的30秒
(2)phpexcle大數據量情況下內存溢出
解決方法:
設置導入時長:
(1)修改php的配置文件 php.ini 文件找到 php.ini 這個文件,然後在這個文件中找到:max_execution_time = 30 ;這一行,將數字 30 設置成你想要的值,單位是秒。(也可以直接修改爲:max_execution_time=0;//無限制)注意這樣修改完後需要重啓一下服務器。 (2)使用 ini_set() 函數對於那些不能夠修改 php.ini 的朋友來說,你可以使用ini_set()這個函數來改變你的最大執行時間限制值,在程序的頂部加入如下代碼:ini_set('max_execution_time','100');以上設置的爲100秒,你也可以設置爲0,那麼就是不限制執行的時間。 (3)使用set_time_limit() 函數
在程序的頂部加入:set_time_limit(100);則表示最大執行時間設置爲了100秒,當然也可以將參數設置爲0,意思同上。set_time_limit 函數特別說明:void set_time_limit ( int $seconds ) 該函數的作用是設置允許腳本運行的時間,單位爲秒。如果超過了此設置,腳本返回一個致命的錯誤。默認值爲30秒,或者是在php.ini的max_execution_time被定義的值,如果此值存在。當此函數被調用時, set_time_limit()會從零開始重新啓動超時計數器。換句話說,如果超時默認是30秒,在腳本運行了了25秒時調用 set_time_limit(20),那麼,腳本在超時之前可運行總時間爲45秒。當php運行於安全模式下時,此功能不能生效。除了關閉安全模式(在 php.ini 中將 safe_mode 設置爲 off)或改變 php.ini 中的時間限制,沒有別的辦法。案例:如果沒有打開安全模式,設置程序運行時間爲25秒。
此部分轉載自:http://www.kokojia.com/article/4752.html
在在不進行特殊設置的情況下,phpExcel將讀取的單元格信息保存在內存中,我們可以通過PHPExcel_Settings::setCacheStorageMethod()來設置不同的緩存方式,已達到降低內存消耗的目的!1、將單元格數據序列化後保存在內存中PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized; 2、將單元格序列化後再進行Gzip壓縮,然後保存在內存中PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; 3、緩存在臨時的磁盤文件中,速度可能會慢一些PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;4、保存在php://tempPHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; 5、保存在memcache中
PHPExcel_CachedObjectStorageFactory::cache_to_memcache
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
$cacheSettings = array( 'memcacheServer' => 'localhost',
'memcachePort' => 11211,
'cacheTime' => 600
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
注意是加在new PHPExcel() 前面:如下
import("Org.Util.PHPExcel.CachedObjectStorageFactory.php")
$PHPExcel = new \PHPExcel_CachedObjectStorageFactory;
$cacheMethod = $PHPExcel ::cache_to_phpTemp;
$cacheSettings = array('memoryCacheSize'=>'16MB');
$Settings = new \PHPExcel_Settings;
$Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
$objReader = new \PHPExcel_IOFactory;
轉載自:https://www.cnblogs.com/myx/archive/2013/05/20/phpExcel-setCache.html
12.ajax失效
(1)數據連接錯誤
(2)數據庫沒開
其他亂七八糟的錯誤