你確定你的數(shù)據(jù)庫(kù)沒(méi)有密碼嗎?如果沒(méi)有密碼就是這樣連接,如果有密碼要寫(xiě)上數(shù)據(jù)庫(kù)連接密碼。并且你確定你的數(shù)據(jù)庫(kù)名稱(chēng)沒(méi)有錯(cuò)誤,數(shù)據(jù)庫(kù)名一定要和你的mysql數(shù)據(jù)庫(kù)中一樣。
十載專(zhuān)注建站、設(shè)計(jì)、互聯(lián)網(wǎng)產(chǎn)品按需搭建網(wǎng)站服務(wù),業(yè)務(wù)涵蓋品牌網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、小程序制作、軟件系統(tǒng)開(kāi)發(fā)、重慶APP開(kāi)發(fā)公司等。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解每個(gè)客戶(hù)的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶(hù)設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動(dòng)各中小企業(yè)全面信息數(shù)字化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運(yùn)營(yíng)效率。
?php
#
FileName="Connection_php_mysql.htm"
頭三行內(nèi)容都是被注釋掉的,估計(jì)是個(gè)說(shuō)明。這可能指的是文件名吧
#
Type="MYSQL"
告訴你類(lèi)型為MYSQL
#
HTTP="true"
$hostname_conn_news
=
"localhost";
//主機(jī)地址
$database_conn_news
=
"sl";
//數(shù)據(jù)庫(kù)名
$username_conn_news
=
"root";
//數(shù)據(jù)庫(kù)帳號(hào)
$password_conn_news
=
"admin";
//數(shù)據(jù)庫(kù)密碼
$conn_news
=
mysql_pconnect($hostname_conn_news,
$username_conn_news,
$password_conn_news)
or
trigger_error(mysql_error(),E_USER_ERROR);
//傳入?yún)?shù)連接數(shù)據(jù)庫(kù)。失敗則返回MYSQL錯(cuò)誤信息。
?
ThinkPHP內(nèi)置了抽象數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)層,把不同的數(shù)據(jù)庫(kù)操作封裝起來(lái),我們只需要使用公共的Db類(lèi)進(jìn)行操作,而無(wú)需針對(duì)不同的數(shù)據(jù)庫(kù)寫(xiě)不同的代碼和底層實(shí)現(xiàn),Db類(lèi)會(huì)自動(dòng)調(diào)用相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)來(lái)處理。目前的數(shù)據(jù)庫(kù)包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括對(duì)PDO的支持,如果應(yīng)用需要使用數(shù)據(jù)庫(kù),必須配置數(shù)據(jù)庫(kù)連接信息,數(shù)據(jù)庫(kù)的配置文件有多種定義方式。
常用的配置方式是在項(xiàng)目配置文件中添加下面的參數(shù):
?php
//項(xiàng)目配置文件
return array(
//數(shù)據(jù)庫(kù)配置信息
'DB_TYPE' = 'mysql', // 數(shù)據(jù)庫(kù)類(lèi)型
'DB_HOST' = 'localhost', // 服務(wù)器地址
'DB_NAME' = 'thinkphp', // 數(shù)據(jù)庫(kù)名
'DB_USER' = 'root', // 用戶(hù)名
'DB_PWD' = '', // 密碼
'DB_PORT' = 3306, // 端口
'DB_PREFIX' = 'think_', // 數(shù)據(jù)庫(kù)表前綴
//其他項(xiàng)目配置參數(shù)
// ...
);
或者采用如下配置
'DB_DSN' = 'mysql://username:password@localhost:3306/DbName'
使用DB_DSN方式定義可以簡(jiǎn)化配置參數(shù),DSN參數(shù)格式為:
數(shù)據(jù)庫(kù)類(lèi)型://用戶(hù)名:密碼@數(shù)據(jù)庫(kù)地址:數(shù)據(jù)庫(kù)端口/數(shù)據(jù)庫(kù)名
如果兩種配置參數(shù)同時(shí)存在的話(huà),DB_DSN配置參數(shù)優(yōu)先。
注意:如果要設(shè)置分布式數(shù)據(jù)庫(kù),暫時(shí)不支持DB_DSN方式配置。1
如果采用PDO驅(qū)動(dòng)的話(huà),則必須首先配置DB_TYPE 為pdo,然后還需要單獨(dú)配置其他參數(shù),例如:
//PDO連接方式
'DB_TYPE' = 'pdo', // 數(shù)據(jù)庫(kù)類(lèi)型
'DB_USER' = 'root', // 用戶(hù)名
'DB_PWD' = '', // 密碼
'DB_PREFIX' = 'think_', // 數(shù)據(jù)庫(kù)表前綴
'DB_DSN' = 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
注意:PDO方式的DB_DSN配置格式有所區(qū)別,根據(jù)不同的數(shù)據(jù)庫(kù)類(lèi)型設(shè)置有所不同。
配置文件定義的數(shù)據(jù)庫(kù)連接信息一般是系統(tǒng)默認(rèn)采用的,因?yàn)橐话阋粋€(gè)項(xiàng)目的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)配置是相同的。該方法系統(tǒng)在連接數(shù)據(jù)庫(kù)的時(shí)候會(huì)自動(dòng)獲取,無(wú)需手動(dòng)連接。
可以對(duì)每個(gè)項(xiàng)目和不同的分組定義不同的數(shù)據(jù)庫(kù)連接信息,如果開(kāi)啟了調(diào)試模式的話(huà),還可以在不同的應(yīng)用狀態(tài)的配置文件里面定義獨(dú)立的數(shù)據(jù)庫(kù)配置信息。1
第二種 在模型類(lèi)里面定義connection屬性
如果在某個(gè)模型類(lèi)里面定義了connection屬性的話(huà),則實(shí)例化該自定義模型的時(shí)候會(huì)采用定義的數(shù)據(jù)庫(kù)連接信息,而不是配置文件中設(shè)置的默認(rèn)連接信息,通常用于某些數(shù)據(jù)表位于當(dāng)前數(shù)據(jù)庫(kù)連接之外的其它數(shù)據(jù)庫(kù),例如:
//在模型里單獨(dú)設(shè)置數(shù)據(jù)庫(kù)連接信息
protected $connection = array(
'db_type' = 'mysql',
'db_user' = 'root',
'db_pwd' = '1234',
'db_host' = 'localhost',
'db_port' = '3306',
'db_name' = 'thinkphp'
);
也可以采用DSN方式定義,例如:
//或者使用DSN定義
protected $connection = 'mysql://root:1234@localhost:3306/thinkphp';
如果我們已經(jīng)在配置文件中配置了額外的數(shù)據(jù)庫(kù)連接信息,例如:
//數(shù)據(jù)庫(kù)配置1
'DB_CONFIG1' = array(
'db_type' = 'mysql',
'db_user' = 'root',
'db_pwd' = '1234',
'db_host' = 'localhost',
'db_port' = '3306',
'db_name' = 'thinkphp'
),
//數(shù)據(jù)庫(kù)配置2
'DB_CONFIG2' = 'mysql://root:1234@localhost:3306/thinkphp';
那么,我們可以把模型類(lèi)的屬性定義改為:
//調(diào)用配置文件中的數(shù)據(jù)庫(kù)配置1
protected $connection = 'DB_CONFIG1';
//調(diào)用配置文件中的數(shù)據(jù)庫(kù)配置2
protected $connection = 'DB_CONFIG2';
如果采用的是M方法實(shí)例化模型的話(huà),也可以支持傳入不同的數(shù)據(jù)庫(kù)連接信息,例如:
$User = M('User','other_','mysql://root:1234@localhost/demo');
表示實(shí)例化User模型,連接的是demo數(shù)據(jù)庫(kù)的other_user表,采用的連接信息是第三個(gè)參數(shù)配置的。如果我們?cè)陧?xiàng)目配置文件中已經(jīng)配置了DB_CONFIG2的話(huà),也可以采用:
$User = M('User','other_','DB_CONFIG2');
如果你的個(gè)別數(shù)據(jù)表沒(méi)有定義任何前綴的話(huà),可以在前綴參數(shù)中傳入NULL,例如:
$User = M('User',Null,'DB_CONFIG2');
表示實(shí)例化User模型,連接的是demo數(shù)據(jù)庫(kù)的user表。
需要注意的是,ThinkPHP的數(shù)據(jù)庫(kù)連接的惰性的,所以并不是在實(shí)例化的時(shí)候就連接數(shù)據(jù)庫(kù),而是在有實(shí)際的數(shù)據(jù)操作的時(shí)候才會(huì)去連接數(shù)據(jù)庫(kù)(額外的情況是,在系統(tǒng)第一次實(shí)例化模型的時(shí)候,會(huì)自動(dòng)連接數(shù)據(jù)庫(kù)獲取相關(guān)模型類(lèi)對(duì)應(yīng)的數(shù)據(jù)表的字段信息)。