if(!is_writable('config.php')){
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、做網(wǎng)站與策劃設計,明溪網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:明溪等地區(qū)。明溪做網(wǎng)站價格咨詢:18982081108
emMsg('配置文件(config.php)不可寫。如果您使用的是Unix/Linux主機,請修改該文件的權限為777。如果您使用的是Windows主機,請聯(lián)系管理員,將此文件設為可寫');
}
if(!is_writable(EMLOG_ROOT.'/content/cache')){
emMsg('緩存文件不可寫。如果您使用的是Unix/Linux主機,請修改緩存目錄?(content/cache)?下所有文件的權限為777。如果您使用的是Windows主機,請聯(lián)系管理員,將該目錄下所有文件設為可寫');
}
$config?=?"?php\n"
."http://mysql?database?address\n"
."define('DB_HOST','$db_host');"
."\n//mysql?database?user\n"
."define('DB_USER','$db_user');"
."\n//database?password\n"
."define('DB_PASSWD','$db_pw');"
."\n//database?name\n"
."define('DB_NAME','$db_name');"
."\n//database?prefix\n"
."define('DB_PREFIX','$db_prefix');"
."\n//auth?key\n"
."define('AUTH_KEY','".getRandStr(32).md5($_SERVER['HTTP_USER_AGENT'])."');"
."\n//cookie?name\n"
."define('AUTH_COOKIE_NAME','EM_AUTHCOOKIE_".getRandStr(32,false)."');"
."\n";
$fp?=?@fopen('config.php',?'w');
$fw?=?@fwrite($fp,?$config);
if?(!$fw){
emMsg('配置文件(config.php)不可寫。如果您使用的是Unix/Linux主機,請修改該文件的權限為777。如果您使用的是Windows主機,請聯(lián)系管理員,將此文件設為可寫');
}
fclose($fp);
//密碼加密存儲
$PHPASS?=?new?PasswordHash(8,?true);
$adminpw?=?$PHPASS-HashPassword($adminpw);
$dbcharset?=?'utf8';
$type?=?'MYISAM';
$table_charset_sql?=?$DB-getMysqlVersion()??'4.1'???'ENGINE='.$type.'?DEFAULT?CHARSET='.$dbcharset.';'?:?'ENGINE='.$type.';';
if?($DB-getMysqlVersion()??'4.1'?){
$DB-query("ALTER?DATABASE?`{$db_name}`?DEFAULT?CHARACTER?SET?utf8?COLLATE?utf8_general_ci;",?true);
}
$widgets?=?Option::getWidgetTitle();
$sider_wg?=?Option::getDefWidget();
$widget_title?=?serialize($widgets);
$widgets?=?serialize($sider_wg);
define('BLOG_URL',?getBlogUrl());
$sql?=?"
DROP?TABLE?IF?EXISTS?{$db_prefix}blog;
CREATE?TABLE?{$db_prefix}blog?(
gid?int(10)?unsigned?NOT?NULL?auto_increment,
title?varchar(255)?NOT?NULL?default?'',
date?bigint(20)?NOT?NULL,
content?longtext?NOT?NULL,
excerpt?longtext?NOT?NULL,
alias?VARCHAR(200)?NOT?NULL?DEFAULT?'',
author?int(10)?NOT?NULL?default?'1',
sortid?int(10)?NOT?NULL?default?'-1',
type?varchar(20)?NOT?NULL?default?'blog',
views?int(10)?unsigned?NOT?NULL?default?'0',
comnum?int(10)?unsigned?NOT?NULL?default?'0',
attnum?int(10)?unsigned?NOT?NULL?default?'0',
top?enum('n','y')?NOT?NULL?default?'n',
sortop?enum('n','y')?NOT?NULL?default?'n',
hide?enum('n','y')?NOT?NULL?default?'n',
checked?enum('n','y')?NOT?NULL?default?'y',
allow_remark?enum('n','y')?NOT?NULL?default?'y',
password?varchar(255)?NOT?NULL?default?'',
template?varchar(255)?NOT?NULL?default?'',
PRIMARY?KEY??(gid),
KEY?date?(date),
KEY?author?(author),
KEY?sortid?(sortid),
KEY?type?(type),
KEY?views?(views),
KEY?comnum?(comnum),
KEY?hide?(hide)
)".$table_charset_sql."
INSERT?INTO?{$db_prefix}blog?(gid,title,date,content,excerpt,author,views,comnum,attnum,top,sortop,hide,allow_remark,password)?VALUES?(1,?'歡迎使用emlog',?'".time()."',?'恭喜您成功安裝了emlog,這是系統(tǒng)自動生成的演示文章。編輯或者刪除它,然后開始您的創(chuàng)作吧!',?'',?1,?0,?0,?0,?'n',?'n',?'n',?'y',?'');
DROP?TABLE?IF?EXISTS?{$db_prefix}attachment;
CREATE?TABLE?{$db_prefix}attachment?(
aid?int(10)?unsigned?NOT?NULL?auto_increment,
blogid?int(10)?unsigned?NOT?NULL?default?'0',
filename?varchar(255)?NOT?NULL?default?'',
filesize?int(10)?NOT?NULL?default?'0',
filepath?varchar(255)?NOT?NULL?default?'',
addtime?bigint(20)?NOT?NULL?default?'0',
width?int(10)?NOT?NULL?default?'0',
height?int(10)?NOT?NULL?default?'0',
mimetype?varchar(40)?NOT?NULL?default?'',
thumfor?int(10)?NOT?NULL?default?0,
PRIMARY?KEY??(aid),
KEY?blogid?(blogid)
)".$table_charset_sql."
DROP?TABLE?IF?EXISTS?{$db_prefix}comment;
CREATE?TABLE?{$db_prefix}comment?(
cid?int(10)?unsigned?NOT?NULL?auto_increment,
gid?int(10)?unsigned?NOT?NULL?default?'0',
pid?int(10)?unsigned?NOT?NULL?default?'0',
date?bigint(20)?NOT?NULL,
poster?varchar(20)?NOT?NULL?default?'',
comment?text?NOT?NULL,
mail?varchar(60)?NOT?NULL?default?'',
url?varchar(75)?NOT?NULL?default?'',
ip?varchar(128)?NOT?NULL?default?'',
hide?enum('n','y')?NOT?NULL?default?'n',
PRIMARY?KEY??(cid),
KEY?gid?(gid),
KEY?date?(date),
KEY?hide?(hide)
)".$table_charset_sql."
DROP?TABLE?IF?EXISTS?{$db_prefix}options;
CREATE?TABLE?{$db_prefix}options?(
option_id?INT(?11?)?UNSIGNED?NOT?NULL?auto_increment,
option_name?VARCHAR(?255?)?NOT?NULL?,
option_value?LONGTEXT?NOT?NULL?,
PRIMARY?KEY?(option_id),
KEY?option_name?(option_name)
)".$table_charset_sql."
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('blogname','點滴記憶');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('bloginfo','使用emlog搭建的站點');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('site_title','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('site_description','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('site_key','emlog');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('log_title_style','0');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('blogurl','".BLOG_URL."');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('icp','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('footer_info','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('admin_perpage_num','15');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('rss_output_num','0');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('rss_output_fulltext','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_lognum','10');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_comnum','10');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_twnum','10');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_newtwnum','5');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_newlognum','5');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_randlognum','5');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('index_hotlognum','5');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_subnum','20');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('nonce_templet','default');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('admin_style','default');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('tpl_sidenum','1');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_code','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_needchinese','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_interval',60);
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isgravatar','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isthumbnail','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('att_maxsize','20480');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('att_type','rar,zip,gif,jpg,jpeg,png,txt,pdf,docx,doc,xls,xlsx');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('att_imgmaxw','420');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('att_imgmaxh','460');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_paging','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_pnum','10');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('comment_order','newer');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('login_code','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('reply_code','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('iscomment','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('ischkcomment','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('ischkreply','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isurlrewrite','0');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isalias','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isalias_html','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isgzipenable','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isxmlrpcenable','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('ismobile','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('isexcerpt','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('excerpt_subnum','300');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('istwitter','y');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('istreply','n');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('topimg','content/templates/default/images/top/default.jpg');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('custom_topimgs','a:0:{}');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('timezone','8');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('active_plugins','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('widget_title','$widget_title');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('custom_widget','a:0:{}');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('widgets1','$widgets');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('widgets2','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('widgets3','');
INSERT?INTO?{$db_prefix}options?(option_name,?option_value)?VALUES?('widgets4','');
讓android客戶端請求你們的php接口地址,你們返回json數(shù)據(jù)。
Android接收php傳值肯定是json格式,接口端,php查詢出數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù),然后再轉成json格式輸出
header('Content-Type:application/json;?charset=utf-8');
echo?json_encode($newData,?JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
ThinkPHP內置了抽象數(shù)據(jù)庫訪問層,把不同的數(shù)據(jù)庫操作封裝起來,我們只需要使用公共的Db類進行操作,而無需針對不同的數(shù)據(jù)庫寫不同的代碼和底層實現(xiàn),Db類會自動調用相應的數(shù)據(jù)庫驅動來處理。目前的數(shù)據(jù)庫包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括對PDO的支持,如果應用需要使用數(shù)據(jù)庫,必須配置數(shù)據(jù)庫連接信息,數(shù)據(jù)庫的配置文件有多種定義方式。
常用的配置方式是在項目配置文件中添加下面的參數(shù):
?php
//項目配置文件
return array(
//數(shù)據(jù)庫配置信息
'DB_TYPE' = 'mysql', // 數(shù)據(jù)庫類型
'DB_HOST' = 'localhost', // 服務器地址
'DB_NAME' = 'thinkphp', // 數(shù)據(jù)庫名
'DB_USER' = 'root', // 用戶名
'DB_PWD' = '', // 密碼
'DB_PORT' = 3306, // 端口
'DB_PREFIX' = 'think_', // 數(shù)據(jù)庫表前綴
//其他項目配置參數(shù)
// ...
);
或者采用如下配置
'DB_DSN' = 'mysql://username:password@localhost:3306/DbName'
使用DB_DSN方式定義可以簡化配置參數(shù),DSN參數(shù)格式為:
數(shù)據(jù)庫類型://用戶名:密碼@數(shù)據(jù)庫地址:數(shù)據(jù)庫端口/數(shù)據(jù)庫名
如果兩種配置參數(shù)同時存在的話,DB_DSN配置參數(shù)優(yōu)先。
注意:如果要設置分布式數(shù)據(jù)庫,暫時不支持DB_DSN方式配置。1
如果采用PDO驅動的話,則必須首先配置DB_TYPE 為pdo,然后還需要單獨配置其他參數(shù),例如:
//PDO連接方式
'DB_TYPE' = 'pdo', // 數(shù)據(jù)庫類型
'DB_USER' = 'root', // 用戶名
'DB_PWD' = '', // 密碼
'DB_PREFIX' = 'think_', // 數(shù)據(jù)庫表前綴
'DB_DSN' = 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
注意:PDO方式的DB_DSN配置格式有所區(qū)別,根據(jù)不同的數(shù)據(jù)庫類型設置有所不同。
配置文件定義的數(shù)據(jù)庫連接信息一般是系統(tǒng)默認采用的,因為一般一個項目的數(shù)據(jù)庫訪問配置是相同的。該方法系統(tǒng)在連接數(shù)據(jù)庫的時候會自動獲取,無需手動連接。
可以對每個項目和不同的分組定義不同的數(shù)據(jù)庫連接信息,如果開啟了調試模式的話,還可以在不同的應用狀態(tài)的配置文件里面定義獨立的數(shù)據(jù)庫配置信息。1
第二種 在模型類里面定義connection屬性
如果在某個模型類里面定義了connection屬性的話,則實例化該自定義模型的時候會采用定義的數(shù)據(jù)庫連接信息,而不是配置文件中設置的默認連接信息,通常用于某些數(shù)據(jù)表位于當前數(shù)據(jù)庫連接之外的其它數(shù)據(jù)庫,例如:
//在模型里單獨設置數(shù)據(jù)庫連接信息
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';
如果我們已經在配置文件中配置了額外的數(shù)據(jù)庫連接信息,例如:
//數(shù)據(jù)庫配置1
'DB_CONFIG1' = array(
'db_type' = 'mysql',
'db_user' = 'root',
'db_pwd' = '1234',
'db_host' = 'localhost',
'db_port' = '3306',
'db_name' = 'thinkphp'
),
//數(shù)據(jù)庫配置2
'DB_CONFIG2' = 'mysql://root:1234@localhost:3306/thinkphp';
那么,我們可以把模型類的屬性定義改為:
//調用配置文件中的數(shù)據(jù)庫配置1
protected $connection = 'DB_CONFIG1';
//調用配置文件中的數(shù)據(jù)庫配置2
protected $connection = 'DB_CONFIG2';
如果采用的是M方法實例化模型的話,也可以支持傳入不同的數(shù)據(jù)庫連接信息,例如:
$User = M('User','other_','mysql://root:1234@localhost/demo');
表示實例化User模型,連接的是demo數(shù)據(jù)庫的other_user表,采用的連接信息是第三個參數(shù)配置的。如果我們在項目配置文件中已經配置了DB_CONFIG2的話,也可以采用:
$User = M('User','other_','DB_CONFIG2');
如果你的個別數(shù)據(jù)表沒有定義任何前綴的話,可以在前綴參數(shù)中傳入NULL,例如:
$User = M('User',Null,'DB_CONFIG2');
表示實例化User模型,連接的是demo數(shù)據(jù)庫的user表。
需要注意的是,ThinkPHP的數(shù)據(jù)庫連接的惰性的,所以并不是在實例化的時候就連接數(shù)據(jù)庫,而是在有實際的數(shù)據(jù)操作的時候才會去連接數(shù)據(jù)庫(額外的情況是,在系統(tǒng)第一次實例化模型的時候,會自動連接數(shù)據(jù)庫獲取相關模型類對應的數(shù)據(jù)表的字段信息)。
要執(zhí)行php程序,肯定要啟動apache服務器。
APPSrv里面,www目錄是php文件根目錄。
創(chuàng)建數(shù)據(jù)庫的問題,你是Windows系統(tǒng)的話,可能是你不是用超級管理員登錄,Linux系統(tǒng)的話,可能不是用root用戶登錄的。
錯誤信息是你無權訪問,應該是數(shù)據(jù)庫密碼和用戶名錯了,mysql的用戶名一般是root :
$con=mysql_connect("localhost","root"," ");
1、首先確定虛擬主機是否帶數(shù)據(jù)庫功能,因為有的虛擬主機不帶數(shù)據(jù)庫。
2、如果是整站的php網(wǎng)站搬遷,可以在原先的服務器上打包數(shù)據(jù)庫為sql文件,再到新虛擬主機數(shù)據(jù)庫管理功能導入。
3、修改網(wǎng)站中相關數(shù)據(jù)庫配置文件。
當前標題:php文件作為數(shù)據(jù)庫,php 文件數(shù)據(jù)庫
URL地址:http://jinyejixie.com/article44/dsedjhe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、App開發(fā)、建站公司、網(wǎng)站設計、動態(tài)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)