『壹』 php thinkphp3.2 沒有定義資料庫配置錯誤怎麼解決
<?php
return array(
//'配置項'=>'配置值'
//調試模式
//修改定界符
'TMPL_ENGINE_CONFIG' => array(
'template_dir' => TMPL_PATH . 'Default/',
'compile_dir' => CACHE_PATH,
'cache_dir' => TEMP_PATH,
'left_delimiter' => '<{',
'right_delimiter' => '}>',
'caching' => 0,
'cache_lifetime' => -1
),
'APP_DEBUG' => true,
'DB_FIELD_CACHE' => false,
'HTML_CACHE_ON' => false,
//URL模式
'URL_MODULE' => '2',
//資料庫配置
'DB_HOST' => 'localhost',
'DB_NAME' => 'databaseName',
'DB_USER' => 'root',
'DB_PWD' => 'root',
'DB_PORT' => '3306',
'DB_PREFIX' => '表前綴',
//用戶許可權資料庫
//'USER_MODULE_DB' => 'mysql://root:root@localhost:3306/databaseName',
//模板引擎
'TMPL_ENGINE_TYPE' => 'Smarty',
//模塊配置
'APP_GROUP_LIST' => 'Default,admin', //項目分組設定
'DEFAULT_GROUP' => 'Default',
//自動載入類庫
//Common工具類
//Entity實體類
//Dao數據訪問類
//Validate驗證類
'APP_AUTOLOAD_PATH' =>'@.Base,@.Common,@.Entity,@.Dao,@.Validate',
);
?>
『貳』 請問下Thinkphp5.0.5報未定義數組下標: 1是什麼原因呀該怎麼解決呀
把具有相同類型的若干變數按有序的形式組織起來的一種形式,這些按序排列的同類數據元素的集合稱為數組。
數組成員引用的下標值就是這個成員元素在數組中的位置。因此必須大於或等於1。
$POST['id']之所以報未定義索引是因為$POST這個數組里沒有包含下標鍵值為id的值。
數組的下標都是從0開始的
要記錄下標直接寫成
for(int i = 0;i<a.length;i++){//i就是下標,a.length就是數組長度
}
(2)thinkphp沒有定義資料庫配置擴展閱讀:
ThinkPHP框架的文件全部採用UTF-8編碼格式,UTF-8的支持和自動輸出編碼轉換的功能讓頁面表現更加靈活。可以配置輸出的頁面編碼格式,如gb2312等(默認採用UTF-8輸出)。
系統根據配置文件中設置的編碼格式自動對頁面進行編碼轉換,支持iconv和mb_string兩種方式,為了提高效率,如果系統的模板編碼設置和輸出編碼設置項相同,則不會進行編碼轉換。ThinkPHP可以設置模板編碼、輸出編碼和資料庫編碼,並自動完成轉換工作,讓你的應用不再受編碼的苦惱。
『叄』 ThinkPHP 動態修改config.php中的資料庫配置信息
float a[3][3],sum=0;
int i,j;
printf("please input rectangle element:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("ijiaoxian he is %6.2f",sum);
}
『肆』 php手把手教你做網站(二十九)thinkphp6部署多個資料庫
前邊介紹了負載均衡,mysql同步,接下來介紹tp6分布式部署多個資料庫,實現讀寫分離。
tp6的分布式部署讀和寫仍然是一個系統,這里我們分開操作,給用戶展示的就是從資料庫,後端添加文章就是主庫,然後同步到從庫。
1、配置資料庫鏈接參數
目標:實現隨機使用資料庫展示信息,只是讀操作。
測試:前台可以讀取表中內容(存放的不一致),查看是否是隨機顯示的。
打開.env文件進行編輯
說明:
2、編輯database.php
找到deploy設置為1分布式部署,下邊不要改,都是讀,寫入的也就是後端的我們單獨建站連接主庫。
配置完成,tp6使用的是mt_rand取隨機數判斷使用哪個資料庫。
3、資料庫交互寫操作
比如瀏覽量沒必要每次都去更新資料庫,可以先使用redis緩存,存夠1000的整數倍,再去更新資料庫。
4、後台獨立,也就是寫
可以前後端分離,單獨做一個網站(沒有前端)使用ip訪問或者獨立的域名連接後台。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負載均衡,肯定是多個一樣的網站,如果圖片存放到一個站,別的就不能訪問了,可以單獨設置一個附件(壓縮包,圖片等)伺服器,可以使用二級域名連接,這就要求我們上傳附件的時候,是上傳到附件伺服器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到後台伺服器然後使用(php)ftp上傳,或者是通過curl上傳到附件伺服器,感覺那樣畢竟麻煩,直接設置跨域會比較簡單。
也測試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實現讀寫分離(在一個站點)
我個人是不喜歡這樣的,負載均衡應該是均衡地讀,也就是前台單獨一個站點,後端的寫是另一個獨立的站點,看個人喜好吧。
獨立後台的優點:可以提升安全性,因為我們的後台網址是不公開的,避免用戶猜測一些後台的信息。
.env配置按照1所述編輯,默認第一個是主庫。
database.php
願大家在新的一年心想事成,萬事如意!!!
『伍』 thinkphp 資料庫怎麼設置
在項目文件夾裡面的Conf的config.php裡面去配置就可以了,這個是公共配置文件。參考:
return array(
//'配置項'=>'配置值'
'APP_GROUP_LIST' => 'Index,Admin', //獨立分組
'DEFAULT_GROUP' => 'Index',
'APP_GROUP_MODE' => 1,
'APP_GROUP_PATH' => 'rzxt',
'DB_HOST' => '127.0.0.1',
'DB_USER' => 'root',
'DB_PWD' => '123456',
'DB_NAME' => 'klrz',
'DB_PREFIX' => 'kl_',
//'TMPL_VAR_IDENTIFY' => 'array',
//'TMPL_FILE_DEPR' => '_',
'DEFAULT_TIMEZONE'=>'Asia/Shanghai'
);
『陸』 thinkphp5.1連接資料庫
在應用配置目錄或者模塊配置目錄(不清楚配置目錄位置的話參考配置章節)下面的database.php中(後面統稱為資料庫配置文件)配置下面的資料庫參數:
return [
// 資料庫類型
'type' => 'mysql',
// 伺服器地址
'hostname' => '127.0.0.1',
// 資料庫名
'database' => 'thinkphp',
// 資料庫用戶名
'username' => 'root',
// 資料庫密碼
'password' => '',
// 資料庫連接埠
'hostport' => '',
// 資料庫連接參數
'params' => [],
// 資料庫編碼默認採用utf8
'charset' => 'utf8',
// 資料庫表前綴
'prefix' => 'think_',
];
系統默認支持的資料庫type包括:
type 資料庫
mysql MySQL
sqlite SqLite
pgsql PgSQL
sqlsrv SqlServer
type參數支持命名空間完整定義,不帶命名空間定義的話,默認採用\think\db\connector作為命名空間,如果使用應用自己擴展的資料庫驅動,可以配置為:
// 資料庫類型
'type' => '\org\db\Mysql',
表示資料庫的連接器採用 \org\db\Mysql類作為資料庫連接驅動,而不是默認的\think\db\connector\Mysql。
『柒』 thinkphp3.2.2怎麼配置
一、全局配置定義
常用的配置方式是在應用配置文件或者模塊配置文件中添加下面的配置參數:
//資料庫配置信息
'DB_TYPE' => 'mysql', // 資料庫類型
'DB_HOST' => 'localhost', // 伺服器地址
'DB_NAME' => 'thinkphp', // 資料庫名
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '123456', // 密碼
'DB_PORT' => 3306, // 埠
'DB_PREFIX' => 'think_', // 資料庫表前綴
'DB_CHARSET'=> 'utf8', // 字元集
資料庫的類型由DB_TYPE參數設置。
下面是目前支持的資料庫設置:
DB_TYPE設置 支持的資料庫類型
mysql或mysqli mysql
pgsql pgsql
sqlite sqlite
mssql 或sqlsrv sqlserver
oracle oracle
ibase ibase
mongo mongo
PDO PDO支持的所有資料庫
如果DB_TYPE使用PDO類型的話,資料庫類型則由DB_DSN配置決定。
或者採用如下配置
'DB_DSN' => 'mysql://root:123456@localhost:3306/thinkphp#utf8'
使用DB_DSN方式定義可以簡化配置參數,DSN參數格式為:
資料庫類型://用戶名:密碼@資料庫地址:資料庫埠/資料庫名#字元集
字元集設置需要3.2.1版本以上有效,字元集如果沒有設置的話,默認為utf8。
如果兩種配置參數同時存在的話,DB_DSN配置參數優先。
注意:如果要設置分布式資料庫,暫時不支持DB_DSN方式配置。
如果採用PDO驅動的話,則必須首先配置DB_TYPE為pdo,然後還需要單獨配置其他參數,例如:
//PDO連接方式
'DB_TYPE' => 'pdo', // 資料庫類型
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PREFIX' => 'think_', // 資料庫表前綴
'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=utf8'
注意:PDO方式的DB_DSN配置格式有所區別,根據不同的資料庫類型設置有所不同,具體可以參考PHP手冊。
配置文件定義的資料庫連接信息一般是系統默認採用的,因為一般一個應用的資料庫訪問配置是相同的。該方法系統在連接資料庫的時候會自動獲取,無需手動連接。
可以對每個模塊定義不同的資料庫連接信息,如果開啟了調試模式的話,還可以在不同的應用狀態的配置文件裡面定義獨立的資料庫配置信息。
二、模型類定義
如果在某個模型類裡面定義了connection屬性的話,則實例化該自定義模型的時候會採用定義的資料庫連接信息,而不是配置文件中設置的默認連接信息,通常用於某些數據表位於當前資料庫連接之外的其它資料庫,例如:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
protected $connection = array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => 'localhost',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset' => 'utf8',
);
}
也可以採用DSN方式定義,例如:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//或者使用DSN定義
protected $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8';
}
如果我們已經在配置文件中配置了額外的資料庫連接信息,例如:
//資料庫配置1
'DB_CONFIG1' => array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => 'localhost',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset'=> 'utf8',
),
//資料庫配置2
'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
那麼,我們可以把模型類的屬性定義改為:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//調用配置文件中的資料庫配置1
protected $connection = 'DB_CONFIG1';
}
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class InfoModel extends Model{
//調用配置文件中的資料庫配置1
protected $connection = 'DB_CONFIG2';
}
三、實例化定義
除了在模型定義的時候指定資料庫連接信息外,我們還可以在實例化的時候指定資料庫連接信息,例如: 如果採用的是M方法實例化模型的話,也可以支持傳入不同的資料庫連接信息,例如:
$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');
表示實例化User模型,連接的是demo資料庫的other_user表,採用的連接信息是第三個參數配置的。如果我們在項目配置文件中已經配置了DB_CONFIG2的話,也可以採用:
$User = M('User','other_','DB_CONFIG2');
需要注意的是,ThinkPHP的資料庫連接的惰性的,所以並不是在實例化的時候就連接資料庫,而是在有實際的數據操作的時候才會去連接資料庫(額外的情況是,在系統第一次實例化模型的時候,會自動連接資料庫獲取相關模型類對應的數據表的欄位信息)。
『捌』 thinkphp 沒有定義資料庫配置
在你的config文件中重新定義一下資料庫的配置,可能是你文件改動了
『玖』 thinkphp的網站上傳到伺服器時找不到資料庫
查找網站根目錄下,或者app_path下,是否有類似config.php的文件,修改其中的資料庫配置