网站建设资讯

NEWS

网站建设资讯

PHP简易文件数据库,php数据库配置文件

PHP简单的操作Access数据库

关于用PHP连接ACCESS数据库的做法

我们提供的服务有:网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、上思ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的上思网站制作公司

用ASP和PHP的,一起做一个比较..

ASP程序

程序代码 程序代码

1.conn= "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" Server.MapPath("*.mdb")

2.set conn = server.createobject("adodb.connection")

3.conn.open conn

4.set rs = Server.CreateObject("adodb.recordset")

5.sql = "select * from 表名"

6.rs.Open sql, conn, 3, 1

7.rs.Close

PHP程序

程序代码 程序代码

?PHP

1.$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");

2.$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");

3.$conn-Open($connstr);

4.$rs = @new COM("ADODB.RecordSet");

5.$sql ="select * from blog_Content";

6.$rs-Open($sql,$conn,1,3);

7.$rs-close();

?

两个程序都相对应....很好理解了吧.嘿....然后就是ASP和PHP操作记录集了...有什么不同,,看资料了事5~

php: $rs[name/index];

asp: rs(name/index);

php: $rs-Fields["name"]-Value / fields[index]-Value;

asp: rs.fields(index)/rs.field(name);

php中的方法和ASP中基本一致,只是写法上不一样,,注意:PHP区分大小写,写时后面一定要加;号

asp:

修改记录集中的记录

rs.AddNew 向记录集中添加一条新记录

rs.Delete 从记录集中删除一条记录

rs.{fieldName/fieldIndex}=指定值;

rs.Update 保存对当前记录所做的修改

CancelBatch 当记录集处在批量更新模式时)取消一批更新

CancelUpdate 调用Update之前)取消对当前记录所做的所有修改

UpdateBatch 当记录集处于批量更新模式时)保存对一个或多个记录的修改

遍历记录集

Move NumRecords 在记录集中向前或向后移动指定数目的记录数。

MoveFirst 移动到记录集的第一条记录

MoveNext 移动到记录集的下一条记录

MovePrevious 移动到记录集中的上一条记录

MoveLast 移动到记录集的最后一条记录

记录集对象属性

AbsolutePosition 用来设置或读取当前记录在记录集中的位置顺序号

BOF 标明当前位置在记录集中的第一条记录之前

EOF 标明当前位置在记录集中的最后一条记录之后

RecordCount 表示一个记录集中的记录总数

记录集进行分页

AbsolutePage 指定当前的页

PagePount 返回记录集中的逻辑页数

PageSize 指定一个逻辑页中的记录个数,缺省值是10

GetRows() 记录取到数组

MaxRecords 记录集的最大容量

本人注:在文章最后只给出了ASP的内容,没有找到PHP的啊,还有我试验了以上内容,可是发现那容输出以后只是一个Object单词,不知道为什么,还希望高手不吝赐教!

thikphp 单独php文件怎样操作数据库

ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。

常用的配置方式是在项目配置文件中添加下面的参数:

?php

//项目配置文件

return array(

//数据库配置信息

'DB_TYPE' = 'mysql', // 数据库类型

'DB_HOST' = 'localhost', // 服务器地址

'DB_NAME' = 'thinkphp', // 数据库名

'DB_USER' = 'root', // 用户名

'DB_PWD' = '', // 密码

'DB_PORT' = 3306, // 端口

'DB_PREFIX' = 'think_', // 数据库表前缀

//其他项目配置参数

// ...

);

或者采用如下配置

'DB_DSN' = 'mysql://username:password@localhost:3306/DbName'

使用DB_DSN方式定义可以简化配置参数,DSN参数格式为:

数据库类型://用户名:密码@数据库地址:数据库端口/数据库名

如果两种配置参数同时存在的话,DB_DSN配置参数优先。

注意:如果要设置分布式数据库,暂时不支持DB_DSN方式配置。1

如果采用PDO驱动的话,则必须首先配置DB_TYPE 为pdo,然后还需要单独配置其他参数,例如:

//PDO连接方式

'DB_TYPE' = 'pdo', // 数据库类型

'DB_USER' = 'root', // 用户名

'DB_PWD' = '', // 密码

'DB_PREFIX' = 'think_', // 数据库表前缀

'DB_DSN' = 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'

注意:PDO方式的DB_DSN配置格式有所区别,根据不同的数据库类型设置有所不同。

配置文件定义的数据库连接信息一般是系统默认采用的,因为一般一个项目的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。

可以对每个项目和不同的分组定义不同的数据库连接信息,如果开启了调试模式的话,还可以在不同的应用状态的配置文件里面定义独立的数据库配置信息。1

第二种 在模型类里面定义connection属性

如果在某个模型类里面定义了connection属性的话,则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库,例如:

//在模型里单独设置数据库连接信息

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';

如果我们已经在配置文件中配置了额外的数据库连接信息,例如:

//数据库配置1

'DB_CONFIG1' = array(

'db_type' = 'mysql',

'db_user' = 'root',

'db_pwd' = '1234',

'db_host' = 'localhost',

'db_port' = '3306',

'db_name' = 'thinkphp'

),

//数据库配置2

'DB_CONFIG2' = 'mysql://root:1234@localhost:3306/thinkphp';

那么,我们可以把模型类的属性定义改为:

//调用配置文件中的数据库配置1

protected $connection = 'DB_CONFIG1';

//调用配置文件中的数据库配置2

protected $connection = 'DB_CONFIG2';

如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:

$User = M('User','other_','mysql://root:1234@localhost/demo');

表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:

$User = M('User','other_','DB_CONFIG2');

如果你的个别数据表没有定义任何前缀的话,可以在前缀参数中传入NULL,例如:

$User = M('User',Null,'DB_CONFIG2');

表示实例化User模型,连接的是demo数据库的user表。

需要注意的是,ThinkPHP的数据库连接的惰性的,所以并不是在实例化的时候就连接数据库,而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,会自动连接数据库获取相关模型类对应的数据表的字段信息)。

PHP 如何读取本地TXT文件并写入数据库

如在客户端的话, 那需要上传!

file ('c:\123.txt');

读取的是服务器上硬盘C区中的123.txt

而不是访问者电脑的硬盘上的文件!

无论什么服务器端脚本, 在用户未上传本地文件的情况下, 都是不可能读取到客户端上的文件的!

关于PHP数据库

PHP调用三种数据库的方法

本文比较详细的介绍PHP调用MySQL、ODBC以及ORACLE数据库。

MySQL是一个小巧灵珑的数据库服务器软件,对于中、小型应用系统是非常理想的。除了支持标准的ANSI SQL语句外,最重要的是,它还支持多种平台,而在Unix/Linux系统上,MySQL支持多线程运行方式,从而能获得相当好的性能。它和PHP、 Apache一样,是属于开放源代码软件。其官方网站是:,上面提供Windows,Linux,Unix版本的源代码的下载。

注意,MySQL访问函数都需要有相应的权限才能运行。常用的相关函数介绍如下:

(1)integer mysql_connect(主机,用户名,口令);

此函数开始一个对指定主机上的MySQL数据库的连接。若该数据库位于一个不同地端口,则在主机名后加上冒号和端口号。所有参数均为可选的,缺省情况下分别对应为本地主机、用户正在执行的脚本名和空。主机可以是IP地址或域名。

在脚本执行结束时,连接被自动关闭,也可以用mysql_close提前关闭。

(2)boolean mysql_create_db(数据库名);

创建一个数据库。注意必须用一个带有创建数据库许可权的帐号打开连接。

(3)boolean mysql_select_db(数据库名,连接号);

选择缺省数据库。

(4)integer mysql_query(SQL语句,连接号);

对指定数据库进行查询。如果SQL语句是select,则返回一个结果号,否则返回的值可以不理会。如果失败,返回false.。

(5)array mysql_fetch_array(结果号);

取出下一行,返回一个数组.可以用数字下标访问(第一个字段是下标 0),也可以用字符串下标访问(即使用各字段名)。如已取了最后一行,返回 false.。

(6)mysql_fetch_row(结果号);

返回一个矩阵代表结果集中一行的所有域。每次调用都会产生下一行,直到没有行剩下时返回false。每个域值都由一个从零开始的偏移量索引。这是从查询中获取结果的最快方法。

(7)integer mysql_num_rows(结果号);

返回结果集中行的数目

(8)integer mysql_num_fields(结果号);

返回结果集中域的数目。

(9)integer mysql_list_dbs();

向服务器查询数据库列表。它返回一个结果指针,该指针可用于mysql_fetch_row函数及类似函数。

(10)mysql_list_tables(数据库名);

获取一个指向指定数据库的表单列表的结果指针。该结果指针可用于任何从结果集中获取行的函数。

(11)mysql_close(连接号);

关闭对数据库的连接。连接必须是由mysql_connect打开的。该函数的使用不是严格必需的,因为在脚本结束时,所有非永久链路都会被自动关闭。

(12)mysql_pconnect(主机,用户名,口令);

与mysql_connect完全相似,但建立一个"永久连接",该连接一经建立永不关闭,即使使用mysql_close函数或程序执行完毕也不关闭.下一次试图建立永久连接时,系统如发现已存在一个永久连接,则直接返回该连接号而不重新创建。

下面是一个调用MYSQL数据库并分页显示的例子。

?

$pagesize = 5; //每页显示5条记录

$host="localhost";

$user="user";

$password="psw";

$dbname="book"; //所查询的库表名;

//连接MySQL数据库

mysql_connect("$host","$user","$password") or die("无法连接MySQL数据库服务器!");

$db = mysql_select_db("$dbname") or die("无法连接数据库!");

$sql = "select count(*) as total from pagetest";//生成查询记录数的SQL语句

$rst = mysql_query($sql) or die("无法执行SQL语句:$sql !"); //查询记录数

$row = mysql_fetch_array($rst) or die("没有更多的记录!"); /取出一条记录

$rowcount = $row["total"];//取出记录数

mysql_free_result($rst) or die("无法释放result资源!"); //释放result资源

$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出总共有几页

if(!isset($pageno)) {

$pageno = 1; //在没有设置pageno时,缺省为显示第1页

}

if($pageno1) {

$pageno = 1; //若pageno比1小,则把它设置为1

}

if($pageno$pagecount) {

$pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最后一页

}

if($pageno0) {

$href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF转换为可以在URL上使用的字符串,这样的话就可以处理中文目录或中文文件名

if($pageno1){//显示上一页的裢接

echo "a href="" . $href . "?pageno=" . ($pageno-1) . ""上一页/a ";

}

else{

echo "上一页";

}

for($i=1;$i$pageno;$i++){

echo "a href="" . $href . "?pageno=" . $i . """ . $i . "/a ";

}

echo $pageno . " ";

for($i++;$i=$pagecount;$i++){

echo "a href="" . $href . "?pageno=" . $i . """ . $i . "/a ";

}

if($pageno$pagecount){//显示下一页的裢接

echo "a href="" . $href . "?pageno=" . ($pageno+1) . ""下一页/a ";

}

else{

echo "下一页 ";

}

$offset = ($pageno-1) * $pagesize;//算出本页第一条记录在整个表中的位置(第一条记录为0)

$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查询本页数据的SQL语句

$rst = mysql_query($sql);//查询本页数据

$num_fields = mysql_num_fields($rst);//取得字段总数

$i = 0;

while($i$num_fields){//取得所有字段的名字

$fields[$i] = mysql_field_name($rst,$i);//取得第i+1个字段的名字

$i++;

}

echo "table border="1" cellspacing="0" cellpadding="0"";//开始输出表格

echo "tr";

reset($fields);

while(list(,$field_name)=each($fields)){//显示字段名称

echo "th$field_name/th";

}

echo "/tr";

while($row=mysql_fetch_array($rst)){//显示本页数据

echo "tr";

reset($fields);

while(list(,$field_name)=each($fields)){//显示每个字段的值

$field_value = $row[$field_name];

if($field_value==""){

echo "td /td";

}

else{

echo "td$field_value/td";

}

}

echo "/tr";

}

echo "/table";//表格输出结束

mysql_free_result($rst) or die("无法释放result资源!");//释放result资源

}

else{

echo "目前该表中没有任何数据!";

}

mysql_close($server) or die("无法与服务器断开连接!");//断开连接并释放资源

?

开放数据库连接(ODBC)已成为一种与数据库进行通信的工业标准。PHP也提供了标准的接口,使得PHP能调用Access,SQL SERVER等数据库。其相关函数是:

(1)integer odbc_connect(string dsn, string user, string password)

连接到一个ODBC数据库源名字上。

(2)integer odbc_exec(integer connection, string query)或 odbc_do(integer connection, string query)

在一个连接上执行查询。

(3)boolean odbc_fetch_row(integer result, integer row)

从一个结果集中获取一行数据。Row参数是可选的,若为空缺,则返回下一个有效行。在结果集中不再剩余行时返回false。

(4)boolean odbc_close(integer connection)

关闭一个数据库的连接。若在该连接上有打开的事务,则返回一个错误,而且连接不会被关闭。

最后,还是看个分页的例子:

?

//设定每页显示条数

$show_num = 10;

$spages = $pages;//避免$pages后期被改变

//定义连接

$dsn = "localhost";

$user = "sa";

$password = "";

//计算总记录数

$rs_num = "select count(*) as id from bbs where zu='0' and lei='".$lei."'";

$conn_id = odbc_connect($dsn,$user,$password);

$rnum = odbc_exec($conn_id,$rs_num);

while(odbc_fetch_row($rnum)){

$total_rs = odbc_result($rnum,"id");//将总记录数放入$total_rs变量

}

//计算与页有关的条数

$nnn = $total_rs / $show_num;//计算总页数

$hnnn = intval($nnn);//将总页数取整

$cnnnn = $nnn - $hnnn;

//计算所需总页数

switch ($cnnn){

case "0":

$hnnn++;

$nnn = $hnnn;//总页数

break;

default :

$nnn = $hnnn;//总页数

break;

};

if ($nnn == 0)$nnn++;

//计算页面改变所需的条件

$fore = $pages;

$next = $pages;

$fore -= 1;

$next += 1;

if ($fore 0) {

echo "a首页/a";

echo "a前页/a";

};

if ($pages $nnn) {

echo "a后页/a";

echo "a尾页/a";

};

echo "共".$nnn."页";

$query_string = "SELECT * FROM table where condition order by you wanted order";

$cur = odbc_exec($conn_id,$query_string);

//取到循环的顶部

$cnum = ($pages-1) * $show_num;//计算当前的记录游标的位置

//空循环到显示记录游标处

if ($cnum != 0){

for ($i=0;$i=$cnum;odbc_fetch_row($cur)){$i++;};

};

$i=1;

//显示记录

while(odbc_fetch_row($cur)){

echo ;

if ($i == $show_num){//在不满页数时跳出程序

break;

};

$i++;

};

//关闭连接

odbc_close($conn_id);

?

Oracle(甲骨文)是世界上最为流行的关系数据库。它是大公司推崇的工业化的强有力的引擎。我们先看看其相关的函数:

(1)integer ora_logon(string user , string password)

开始对一个Oracle数据库服务器的连接。

(2)integer ora_open(integer connection)

打开给出的连接的游标。

(3)integer ora_do(integer connection, string query)

在给出的连接上执行查询。PHP生成一个指示器,解析查询,并执行之。

(4)integer ora_parse(integer cursor, string query)

解析一个查询并准备好执行。

(5)boolean ora_exec(integer cursor)

执行一个先前由ora_parse函数解析过的查询。

(6)boolean ora_fetch(integer cursor)

此函数会使得一个执行过的查询中的行被取到指示器中。这使得您可以调用ora_getcolumn函数。

(7)string ora_getcolumn(integer cursor, integer column)

返回当前的值。列由零开始的数字索引。

(8)boolean ora_logoff(integer connection)

断开对数据库服务器的链接。

以下是向ORACLE数据库插入数据的示例程序:

html

headtitle向ORACLE数据库中插入数据/title/head

body

form action="?echo $PHP_SELF;?" method="post"

table border="1" cellspacing="0" cellpadding="0"

tr

thID/th

thname/th

thDescription/th

/tr

tr

tdinput type="text" name="name" maxlength="50" size="10"/td

tdinput type="text" name="email" maxlength="255" size="30"/td

tdinput type="text" name="Description" maxlength="255" size="50"/td

/tr

tr align="center"

td colspan="3"input type="submit" value="提交"  input type="reset" value="重写"/td

/tr

/table

/form

?

//先设置两个环境变量ORACLE_HOME,ORACLE_SID

putenv("ORACLE_HOME=/oracle/app/oracle/product/8.0.4");

putenv("ORACLE_SID=ora8");

//设置网页显示中文

putenv("NLS_LANG=Simplified_Chinese.zhs16cgb231280");

if($connection=ora_logon("scott","tiger")) {

//库表test有ID,name,Description三项

$sql = 'insert into test(ID,name,Description) values ';

$sql .= '('' . $ID . '','' . $name . '',''. $Description . '')';

if($cursor=ora_do($connect,$sql)) {

print("insert finished!");

}

$query = 'select * from test';

if($cursor=ora_do($connect,$query)) {

ora_fetch($cursor);

$content0=ora_getcolumn($cursor,0);

$content1=ora_getcolumn($cursor,1);

$content2=ora_getcolumn($cursor,2);

print("$content0");

print("$content1");

print("$content2");

ora_close($cursor);

}

ora_logoff($connection);

}

?

/body

/html

通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。 MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用, 我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会 提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。

PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安装选项应该可以支持两者的使用。

想获得更多有关在Microsoft Windows平台上安装支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:。

4.1 连接

if ($conn=Ora_Logon("user@TNSNAME","password"))

{

echo "SUCCESS ! Connected to database\n";

}

else

{

echo "Failed :-( Could not connect to database\n";

}

Ora_Logoff($conn);

phpinfo();

?

以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。

4.2 查询

假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子:

/*

* 连接数据库并执行查询

*/

function printoraerr($in_cur)

{

// 检查Oracle是否出错

// 如果存在错误则显示

// 当指针被激活时每次请求Oracle后调用该函数

if(ora_errorcode($in_cur))

echo "Oracle code - ".ora_error($in_cur)."\n";

return;

}

/** 主程序 */

if (!($conn=ora_logon("user@TNSNAME","password")))

{

echo "Connection to database failed\n";

exit;

}

echo "Connected as connection - $conn

\n";

echo "Opening cursor ...

\n";

$cursor=ora_open($conn); printoraerr($cursor);

echo "Opened cursor - $cursor

\n";

$qry="select user,sysdate from dual";

echo "Parsing the query $qry ...

\n";

ora_parse($cursor,$qry,0); printoraerr($cursor);

echo "Query parsed

\n";

echo "Executing cursor ...

\n";

ora_exec($cursor); printoraerr($cursor);

echo "Executed cursor

\n";

echo "Fetching cursor ...

\n";

while(ora_fetch($cursor))

{

$user=ora_getcolumn($cursor,0); printoraerr($cursor);

$sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);

echo " row = $user, $sysdate

\n";

}

echo "Fetched all records

\n";

echo "Closing cursor ...

\n";

ora_close($cursor);

echo "Closed cursor

\n";

echo "Logging off from oracle...

\n";

ora_logoff($conn);

echo "Logged off from oracle

\n";

?

(译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分)

4.3 显示结果

以下代码演示了怎样查询数据库并将结果输出:

function printoraerr($in_cur, $conn)

{

// 检查Oracle是否出错

// 如果存在错误则显示

// 当指针被激活时每次请求Oracle后调用该函数

// If it encountered an error, we exit immediately

if(ora_errorcode($in_cur))

{

echo "Oracle code - ".ora_error($in_cur)."

n";

ora_logoff($conn);

exit;

}

return;

}

function exequery($w_qry,$conn)

{

$cursor=ora_open($conn); printoraerr($cursor,$conn);

ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn);

ora_exec($cursor); printoraerr($cursor,$conn);

$numrows=0;

$w_numcols=ora_numcols($cursor);

// 显示头部

echo "

\n";

for ($i=0;$i$w_numcols;$i++)

{

$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";

echo "\t ".ora_columnname($cursor,$i)." \n";

}

echo "

\n";

while(ora_fetch($cursor))

{

echo " \n";

for ($i=0;$i$w_numcols;$i++)

{

$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";

if(ora_columntype($cursor,$i)=="LONG")

echo " ".

ora_getcolumn($cursor,$i)."

\n";

else

echo " ".ora_getcolumn($cursor,$i)." \n";

printoraerr($cursor,$conn);

}

$numrows++;

echo "

\n";

}

if ($numrows==0)

echo " Query returned no records

\n";

else

{

echo " \n";

echo " Count \n";

echo " $numrows \n";

echo "

\n";

}

echo " \n";

ora_close($cursor);

return;

}

// 主程序

if(!($conn=ora_logon("user@SID","password")))

{

echo "Error: Cannot connect to database\n";

exit;

}

$qry="SELECT

deptno \"Dept\"

,empno \"Emp\"

,empnm \"Name\"

,salary \"Salary\"

FROM

employee

ORDER BY 1,2";

exequery($qry);

ora_logoff($conn);

?

(译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分)

4.4 基于HTTP的Oracle登录

将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$ SID。

if(!isset($PHP_AUTH_USER))

{

Header("WWW-authenticate: basic realm=\"$SID\"");

Header("HTTP/1.0 401 Unauthorized");

$title="Login Instructions";

echo "

You are not authorized to enter the site

\n";

exit;

}

else

{

if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW)))

{

Header("WWW-authenticate: basic realm=\"$SID\"");

Header("HTTP/1.0 401 Unauthorized");

$title="Login Instructions";

echo "

You are not authorised to enter the site

\n";

exit;

}

}

?

新手提问~~PHP做的文件怎么连接数据库?~

数据库叫mysql。表是user。行和字段随意。。

$conn

=

mysql_connect('数据库地址',‘数据库用户名’,‘数据库密码’);

mysql_select_db('数据库名');

$result

=

mysql_query('SQL查询语句[select

*

from

表名(user)]');

$array

=

msql_fetch_array($result);

$array

就是数据库中的第一行数据,用一个循环

就可以取所有了

通过ThinkPHP文件建立数据库数据表

if(!is_writable('config.php')){

emMsg('配置文件(config.php)不可写。如果您使用的是Unix/Linux主机,请修改该文件的权限为777。如果您使用的是Windows主机,请联系管理员,将此文件设为可写');

}

if(!is_writable(EMLOG_ROOT.'/content/cache')){

emMsg('缓存文件不可写。如果您使用的是Unix/Linux主机,请修改缓存目录 (content/cache) 下所有文件的权限为777。如果您使用的是Windows主机,请联系管理员,将该目录下所有文件设为可写');

}

$config = "?php\n"

."//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主机,请联系管理员,将此文件设为可写');

}

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,这是系统自动生成的演示文章。编辑或者删除它,然后开始您的创作吧!', '', 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','');


当前标题:PHP简易文件数据库,php数据库配置文件
分享路径:http://cdweb.net/article/dsgcdps.html