文档库 最新最全的文档下载
当前位置:文档库 › (DOC)-计算机毕业设计外文翻译----PHP访问MySQL-其他专业

(DOC)-计算机毕业设计外文翻译----PHP访问MySQL-其他专业

(DOC)-计算机毕业设计外文翻译----PHP访问MySQL-其他专业
(DOC)-计算机毕业设计外文翻译----PHP访问MySQL-其他专业

译文:

通过PHP访问MySQL

现在你已经可以熟练地使用MySQL客户端软件来操作数据库里的数据,我们也可以开始学习如何使用PHP来显示和修改数据库里的数据了。PHP有标准的函数用来操作数据库。

我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHP Extension and Application Repository )中的数据库函数,我们可以使用这些函数操作所有支持的数据库。这种灵活性源自于抽象。对于编程接口而言,抽象简化了复杂的交互过程。它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。PEAR的DB类就是这样一种数据库接口的抽象。你登录一个数据库所需要提供的信息被减少到最少。这种标准的格式可以通过同一个函数来访问MySQL以及其他的数据库。同样,一些MySQL特定的函数被更一般的、可以用在很多数据库上的函数所替代。比如,MySQL特定的连接函数是:

mysql_connect($db_host, $db_username, $db_password);

而PEAR的DB提供的连接函数是:

$connection =

DB::connect("mysql://$db_username:$db_password@$db_host/$db_database" );

两个命令都提供了同样的基本信息,但是PEAR的函数中还指定了要连接的数据库的类型。你可以连接到MySQL或者其他支持的数据库。我们会详细讨论这两种连接方式。

本章中,我们会学习如何从PHP连接到MySQL的服务器,如何使用PHP访问数据库中存储的数据,以及如何正确的向用户显示信息。

步骤

无论是通过MySQL命令行工具,还是通过PHP,执行一个查询的基本步骤都是一样的:

?连接到数据库

?选择要使用的数据库

?创建SELECT语句

?执行查询

?显示结果

我们将逐一介绍如何用PHP和PEAR的函数完成上面的每一步。

资源

当连接到MySQL数据库的时候,你会使用到两个新的资源。第一个是连接的标识符,它记录了一个活动连接用来连接到数据库所必需的所有信息。另外一个资源是结果资源,它包含了用来从一个有效的数据库查询结果中取出结果所需要的所有信息。本章中我们会创建并使用这两种资源。

使用PHP函数查询数据库

本节我们会介绍如何使用PHP连接MySQL数据库。这非常简单,我们会用一些例子说明。但是之前我们应该稍微了解一下幕后发生的事情。当你试图连接一个MySQL数据库的时候,MySQL服务器会根据你的用户名和密码进行身份认证。PHP 为你建立数据库的连接,你可以立即开始查询并得到结果。

我们需要同样的信息来连接数据库:

?数据库服务器的IP地址

?数据库的名字

?用户名

?密码

在开始之前,首先使用MySQL的命令行客户端确认你登录到数据库。

图9-1显示了数据库交互过程的各个步骤和两种类型资源之间的关系。创建SELECT语句发生在第三个函数调用之前,但是在图中没有显示出来。它是通过普通的PHP代码,而不是MySQL特定的PHP函数完成的。

图9-1:使用数据库时函数和资源之间的交互

包含数据库登录细节

我们先创建一个文件,用来保存登录MySQL所用到的信息。我们建议你把这些信息放在单独的文件里然后通过include来使用这个文件。这样一来如果你修改了数据库的密码。无论有多少个PHP文件访问数据库,你只需要修改这一个文件。

假设这个文件的名字叫做db_login.php,并且它跟其他所用PHP文件放在同一个目录下。这个文件的内容如例9-1所示。

例9-1:设置数据库登录的配置文件模板

$db_host='hostname of database server';

$db_database='database name';

$db_username='username';

$db_password='password';

?>

在例9-2中,我们创建的文件使用跟Web服务器放在同一台机器上的数据库,并指定的数据库的名字,用户名和密码。

例9-2:db_login.php文件示例

$db_host='localhost';

$db_database='test';

$db_username='test';

$db_password='yourpass';

?>

图9-2显示了如何在其他PHP文件中使用这个文件。我们会继续使用在第七章中创建的数据库。

图9-2:在多文件中重复使用登录信息

例9-3是精简后的,用mysqldump命令得到的重建这个数据库的SQL命令。

例9-3:重建测试数据库的SQL语句

DROP TABLE IF EXISTS books;

CREATE TABLE books (

title_id int(11) NOT NULL auto_increment,

title varchar(150) default NULL,

pages int(11) default NULL,

PRIMARY KEY (title_id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Dumping data for table books

--

INSERT INTO books VALUES (1,'Linux in a Nutshell',476),(2,'Classic Shell Scripting',256);

--

-- Table structure for table purchases

--

DROP TABLE IF EXISTS purchases;

CREATE TABLE purchases (

id int(11) NOT NULL auto_increment,

user varchar(10) default NULL,

title varchar(150) default NULL,

day date default NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Dumping data for table purchases

--

LOCK TABLES purchases WRITE;

INSERT INTO purchases VALUES (1,'Mdavis','Regular Expression Pocket Reference','2005-02-15'),(2,'Mdavis','JavaScript & DHTML

Cookbook','2005-02-10');

如果你在第8章中没有创建这些表,可以将例9-3中的代码保存成文件backup.sql,然后在命令行执行命令,命令格式如下:

mysql -u username -p password -D database_name < backup_file_name.sql 如果使用例子中的值,那么这个命令就是:

mysql -u test -pyourpass -D test < backup.sql

数据库的名字叫test,它包含三个表,分别是books、authors和purchases。每个表都有一些示例记录。这些就足以让我们开始使用PHP来进行查询了。

连接到数据库

我们需要做的头一件事情是连接数据库,并且检查连接是否确实建立起来。如例9-4所示,通过include包含连接信息的文件,我们可以在调用mysql_connect 函数的时候使用这些变量而不是将这些值写死在代码中。我们使用一个叫做

db_test.php的文件,往其中增加这些代码段。

例9-4:在db_test.php中包含连接参数和调用mysql_connect

// Include our login information

include('db_login.php');

// Connect

$connection = mysql_connect($db_host, $db_username, $db_password);

if (!$connection){

die ("Could not connect to the database:
". mysql_error( ));

}

函数mysql_connect的参数是数据库服务器主机、用户名和密码。如果连接成功,就会返回新建立的连接,如果不能建立连接就会返回FALSE。检查这个函数的返

回值来确保连接的确建立起来了。如果遇到问题,比如不正确的密码,可以使用

请注意我们还没有指定数据库的名字。

诊断连接错误

你可能遇到的一个错误是:

Fatal error: Call to undefined function mysql_connect( ) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\db_test.php on line 4

这个错误发生的原因是下载安装的PHP5.x默认没有包括对MySQL的支持。解决

这个问题需要将php_mysql.dll文件从PHP压缩包例的ext/目录复制到C:/php,

并修改C:\WINDOWS\php.ini文件,确保下面两行没有被注释掉(注释的方法在

行首使用分号)。

extension_dir = "c:/PHP/ext/"

extension=php_mysql.dll

这样PHP扩展的目录就被设为C:\PHP,MySQL的扩展也会被使用。在编辑php.ini

文件的时候,你可以使用编辑器的搜索功能来检查这两行是否已经存在,只是需

要去掉注释,并且需要重新输入。

重新启动Apache,这样MySQL的支持就会被打开了。

选择数据库

建立连接之后,下一步就是使用mysql_select_db来选择我们要用的数据库。它

的参数有两个:数据库名和可选的数据库连接。如果不指定数据库连接,默认使

用上一条mysql_connect所建立的连接。

// Select the database

$db_select=mysql_select_db($db_database);

if (!$db_select)

{

die ("Could not select the database:
". mysql_error( ));

}

同样的,每次访问数据库的时候最好能检查可能的错误并且进行显示。

现在我们做好了一切准备工作,可以开始执行SQL查询了。

构建SQL SELECT查询

构建SQL查询非常容易就是将一个字符串赋值给变量。这个字符串就是我们的SQL查询,当然我们要给出有效的SQL查询,否则执行这个查询的时候MySQL会返回错误。我们使用$query作为变量名,这个名字对应其目的,你也可以选择

你可以使用字符串连接操作符(.)来构建查询:

// Assign the query

$select = ' SELECT ';

$column = ' * ';

$from = ' FROM ';

$tables = ' books ';

$where = ' NATURAL JOIN authors';

$query = $select.$column.$from.$tables.$where;

这个版本的代码比下面的代码要灵活多了:

// Assign the query

$query = "SELECT * FROM books NATURAL JOIN authors";

查询字符串也可以在WHERE子句中使用变量来限定返回什么样的行,这些变量可能是用户信息,也可能是来自其他的查询。

现在我们已经将查询赋值给了一个变量,下一步就是执行它。

执行查询

使用mysql_query函数来告诉数据库执行查询。它有两个参数:查询和可选的数据库连接,返回值是查询结果。我们将查询结果保存在一个变量里,也许你已经猜到我们要用变量名就是$result。这里同样有必要检查mysql_query的返回值不是FALSE来确保查询字符串和数据库连接都没有问题。

// Execute the query

$result = mysql_query( $query );

if (!$result){

die ("Could not query the database:
". mysql_error( ));

}

当数据库查询的时候,所有的结果构成一个结果集。这些结果跟使用mysql命令行客户端执行同样查询所得到的行一致。要显示这些结果,你需要依次处理这些行。

取结果并显示

使用mysql_fetch_row从结果集中取出一行,它的用法如下:

array mysql_fetch_row ( resource $result);

它的参数是SQL查询返回的结果,我们将结果保存在$result中。每次调用它返回一行数据,直到没有数据为止,这时候它返回FALSE。这样,我们可以使用一个循环,在循环内调用mysql_fetch_row并使用一些代码来显示每一行。

// Fetch and display the results

while ($result_row = mysql_fetch_row(($result))){

echo 'Title: '.$result_row[1] . '
';

echo 'Author: '.$result_row[4] . '
';

echo 'Pages: '.$result_row[2] . '

';

}

结果行的所有列都保存在一个数组里,可以方便地进行访问。变量$result_row[2]访问结果行的第二个属性(数组的顺序是查询是定义的列的顺序,如果使用SELECE * ,那么数组顺序就是表的列的顺序)。

取结果的方式

去结果的方式不止一种。使用mysql_fetch_arrry可以一次性将所有结果放在一个数组里。它的参数是查询结果和一个可选的结果绑定方式。如果绑定方式指定为MYSQL_ASSOC,数组中的结果则使用查询中列的名字进行访问。如果指定了MYSQL_NUM,那么就使用从0开始的数字来访问结果。默认使用的方式是MYSQL_BOTH,这样返回的数组支持两种类型的访问。Mysql_fetch_assoc是使用MYSQL_ASSOC取结果的另外一种方式。

用mysql_fetch_array加上MYSQL_ASSOC的方式重写上面的代码,如下所示:// Fetch and display the results

while ($result_row = mysql_fetch_array($result, MYSQL_ASSOC)){ echo 'Title: '.$result_row['title'] . '
';

echo 'Author: '.$result_row['author'] . '
';

echo 'Pages: '.$result_row['pages'] . '

';

}

关闭连接

绝大部分情况下,我们在使用完一个数据库之后要关闭到它的连接。使用

mysql_close来关闭一个数据库,它会告诉PHP和MySQL这个数据库连接已经不再使用,所使用的所有资源和内存都可以释放。

mysql_close($connection)

使用PEAR

PEAR是一个框架和可重用PHP组建的发布系统,它为PHP开发提供了一套增强的功能,PEAR包括很多种模块,用来处理从会话管理到购物车功能的几乎所有事情。表9-1列出了现有的模块种类。

表9-1:PEAR模块种类

Authentication HTML

Processing

Benchmarking HTTP

Science

Caching Images

Semantic Web

Configuration Internationalization Streams Console Logging

Structures

Database Mail

System

Date/Time Math

Test

Encryption Networking

Tools and utilities

Event Numbers

Validate

File

formats Payment Web services

File

system PEAR

XML

GTK components PHP

我们的列表还不够完整,可以访问https://www.wendangku.net/doc/cf7786280.html,来获得供下载的所有模块。

安装

PEAR使用包管理器来管理安装PEAR模块。是否需要安装包管理取决于你所使用的PHP版本。如果你使用的版本是PHP4.4.0或者更新的版本,那么就已经安装了包管理器。如果你使用的是PHP5.0,则PEAR是一个单独的包。我们要用到的

DB包是可选的,但是它会被包管理器默认安装。所以,如果你有包管理器,那么就全搞定了。

UNIX

在UNIX系统下,可以通过在shell(命令行)下执行下面的命令来安装包管理器:lynx -source https://www.wendangku.net/doc/cf7786280.html,/ | php

这个命令使用https://www.wendangku.net/doc/cf7786280.html,的输出(实际就是PHP源代码)来安装PEAR,https://www.wendangku.net/doc/cf7786280.html,的输出被传给php命令执行。

Windows

安装完PHP5后,会有一个PEAR安装脚本C:\php\go-pear.bat。如果你在第二章没有安装所以文件,那么现在把所有的PHP文件都解压到C:\php下,然后执行这个批处理文件。

图9-5显示执行PEAR安装程序后的初始屏幕。

图9-5:go-pear.bat安装脚本

安装程序会要求输入几个路径,你可以使用默认值。那样安装的最上级目录就是c:\php.

PEAR安装程序会创建文件C:\php\PEAR_ENV.reg,双击该文件在注册表中设置PEAR的路径。这个文件的内容视安装的PEAR版本而定。当弹出对话框要求确认的时候,点击OK将信息加入注册表。

在执行完这个批处理文件后,你可能需要编辑php.ini文件,将PEAR的目录加入到include_path中。Php.ini的447行看起来如下:

include_path = ".;c:\php\includes;c:\php\PEAR"

Apache必须重启才能使用DB包。

托管ISP

大部分人的ISP都安装了PEAR DB。如果你的ISP没有提供,可以要求他们安装。你可以通过执行例9-8中的代码来判断PEAR DB是否已经安装,如果没有,那么在执行这个脚本的时候“require_once(‘DB.php’)”这一行就会报错。

增加额外的包

完成上面的步骤之后,你可以通过在命令行输入“pear”来运行PEAR的包管理器。增加新的模块非常容易,只需要执行“pear packagename”就可以了。你不需要安装DB模块,因为在安装包管理器的时候它已经默认安装了。

不过如果你运行的是Windows XP Home ,需要执行下面的步骤来安装PEAR DB:C:\>cd c:\php

C:\>pear install DB

C:\>pear list

找出安装PEAR包的版本,执行pear list。这个命令返回一个列表,如图9-6所示:

图9-6:安装的PEAR包和版本列表

一旦安装完PEAR,我们就可以开始使用它了。

用PEAR重写Books例子

使用PEAR DB包的时候,执行的步骤和使用PHP函数是类似。不过,函数的用法有细微的不同。我们会逐行解释两者的差别,如例9-7所示。

例9-7:用PEAR DB 显示books表

1

2

3 include('db_login.php');

4 require_once('DB.php');

5

6 $connection =

DB::connect("mysql://$db_username:$db_password@$db_host/$db_database" );

7

8 if (DB::isError($connection)){

9 die("Could not connect to the database:

/>".DB::errorMessage($connection));

10 }

11

12 $query = "SELECT * FROM books NATURAL JOIN authors";

13 $result = $connection->query($query);

14

15 if (DB::isError($result)){

16 die("Could not query the database:
$query

".DB::errorMessage($result));

17 }

18

19 echo('

');

20 echo '

';

21

22 while ($result_row = $result->fetchRow( )) {

23 echo "

';

27 }

28

29 echo("

TitleAuthorPages
";

24 echo $result_row[1] . '

';

25 echo $result_row[4] . '

';

26 echo $result_row[2] . '

");

30 $connection->disconnect( );

31

32 ?>

例9-7显示的效果如图9-7所示。

图9-7:使用PEAR DB的函数不影响输出

注意图9-7跟图9-4完全一致。

第3行没有变化,包括数据库登录信息:

include('db_login.php');

第4行增加了一个新的require语句:

require_once( "DB.php" );

这行语句包含DB.php,这个文件提供了PEAR DB函数。如果没有找到DB.php文件,函数require_once会终止代码并返回错误。同时也可以避免同一个文件被包含两次,一个文件被多次包含也会导致问题。

创建连接示例

DB.php文件定义了类DB。参考第5章有关使用类和对象的更多信息。我们将会主要使用这个类提供的方法。类DB有一个connect方法,我们会使用它来替换

前面使用的connect函数mysql_connect。双冒号(::)表示调用类的函数,如第6行所示。

$connection =

DB::connect("mysql://$db_username:$db_password@$db_host/$db_database" );

当调用connect函数的时候,它出创建一个新的数据库连接,保存在变量$connection中。Connect函数试图通过传递给它的连接字符串来连接数据库。连接字符串

连接字符串使用新的格式来表示登录信息,这些信息我们已经通过单独的域提供:

dbtype://username:password@host/database

这个格式看起来也许会有些熟悉,它跟Windows的文件共享所使用的连接字符串非常相似。字符串的第一部分phptype是将PEAR函数与一般PHP函数区分开来的关键部分。Phptype域指定要连接的数据库类型,支持的数据库包括ibase、mysql、mssql、mysql、oci8、odbc、pgsql、和sybase。如果需要使用不同类型的数据库,你的PHP代码只需要修改phptype.

其他的域username、password、host和database跟基本的PHP connect类似。只有连接类型是必需的,不过通常要指定所有的域。

代入了db_login.php中的数值之后,连接字符串如下所示:

"mysql://test:test@localhost/test"

如果第6行的连接方法调用成功,就会创建一个DB对象。它包含访问数据库的方法和数据库连接的所有状态信息。

查询

DB对象包含的一个方法是query。Query方法跟PHP的query函数非常类似,都接受一个SQL语句作为参数。区别是要使用箭头(->)来通过对象调用函数,并且它返回的结果是另外一个对象而不是结果集。

$query = "SELECT * FROM books"

$result = $connection->query($query);

这个代码在连接对象上调用query函数,执行SQL查询,返回结果对象$result. 取结果

第22行在结果对象上调用方法fetchRow。与mysql_fetch_row类似,这个方法一次返回一行数据:

while ($result_row = $result->fetchRow( )) {

echo 'Title: '.$result_row[1] . '
';

echo 'Author: '.$result_row[4] . '
';

echo 'Pages: '.$result_row[2] . '

';

}

使用一个while循环并调用fetchRow来遍历所有行,直到fetchRow返回FALSE。循环内的代码跟未使用PEAR的例子中的代码一致。

关闭

第30行结束数据库连接,它使用的是DB对象的disconnect方法:$connection->disconnect( );

PEAR错误报告

函数DB::isError会检查返回的结果是不是个错误。如果是,可以使用DB::errorMessae得到错误对应的文字描述。你需要将函数的返回值传递给DB::errorMessage作为参数。

下面使用PEAR代码重写错误检查:

if ( DB::isError( $demoResult = $db->query( $sql)))

{

echo DB::errorMessage($demoResult);

} else

{

while ($demoRow = $demoResult->fetchRow( ))

{

echo $demoRow[2] . '
';

}

}

?>

PEAR数据库接口还提供了一个新版本叫做PEAR::MDB2。例9-6给出了使用MDB2版本重写同一个例子的代码。

例9-8:使用PEAR::MDB2显示表books

include('db_login.php');

require_once('MDB2.php');

//Translate our database login information into an array.

$dsn = array(

'phptype' => 'mysql',

'username' => $username,

'password' => $password,

'hostspec' => $host,

'database' => $database

);

//Create the connection as an MDB2 instance.

$mdb2 = MDB2::factory($dsn);

if (PEAR::isError($mdb2)) {

die($mdb2->getMessage( ));

}

//Set the fetchmode to field associative.

$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);

$query = "SELECT * FROM books NATURAL JOIN authors";

$result =$mdb2->query($query);

if (PEAR::isError($result)){

die("Could not query the database:
$query

".$result->getMessage( ));

}

//Display the results.

echo('

');

echo '

';

//Loop through the result set.

while ($row = $result->fetchRow( )) {

echo "

';

}

echo("

TitleAuthorPages
";

echo htmlentities($row['title']) . '

';

echo htmlentities($row['author ']) . '

';

echo htmlentities($row['pages']) . '

");

//Close the connection.

$result->free( );

?>

我们得到同样的显示结果。这个版本的PEAR数据库抽象提供了更多的函数。现在我们掌握了连接数据库的方法以及PEAR提供的各种函数。

原文:

Getting PHP to Talk to MySQl

Now that you’re comfortable using the MySQL client tools to manipulate data in the database, you can begin using PHP to display and modify data from the database. PHP has st andard functions for working with the database.First, we’re going to discuss PHP’s built-in database functions. We’ll also show you how to use the The PHP Extension and Application Repository (PEAR) database

functions that provide the ability to use the same functions to access any supported database. This type of flexibility comes from a process called abstraction. In programming interfaces, abstraction simplifies a complex interaction. It works by removing any nonessential parts of the interaction, allowing you to concentrate on the important parts. PEAR’s DB classes are one such database interface abstraction. The information you need to log into a database is reduced to the bare minimum. This standard format allows you to interact with MySQL, as well as other databases using the same functions. Similarly, other MySQL-specific functions are replaced with generic ones that know how to talk to many databases. For example, the

MySQL-specific connect function is:

mysql_connect($db_host, $db_username, $db_password);

versus PEAR’s DB connect function:

$connection =

DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");

The same basic information is present in both commands, but the PEAR function also specifies the type of databases to which to connect. You can connect to MySQL or other supported databases. We’ll discuss both connection methods in detail.

In this chapter, you’ll learn how to connect to a MySQL server fromPHP, how to use PHP to access and retrieve stored data, and how to correctly display information to the user.

The Process

The basic steps of performing a query, whether using the mysql command-line tool or PHP, are the same:

? Connect to the database.

? Select the database to use.

? Build a SELECT statement.

? Perform the query.

? D isplay the results.

We’ll walk through each of these steps for both plain PHP and PEAR functions. Resources

When connecting to a MySQL database, you will use two new resources. The first is the link identifier that holds all of the information necessary to connect to the database for an active connection. The other resource is the results resource. It contains all information required to retrieve results from an active database query’s result set. You’ll be creating and assigning both resources in this chap ter.

Querying the Database with PHP Functions

In this section, we introduce how to connect to a MySQL database with PHP. It’s quite simple, and we’ll begin shortly with examples, but we should talk briefly about what actually happens. When you try connecting to a MySQL database, the MySQL server authenticates you based on your username and password. PHP handles connecting

to the database for you, and it allows you to start performing queries and gathering data immediately.

As in Chapter 8, we’ll need the sa me pieces of information to connect to the database: ? The IP address of the database server

? The name of the database

? The username

? The password

Before moving on, make sure you can log into your database using the MySQL command-line client.

Figure 9-1 shows how the steps of the database interaction relate to the two types of resources. Building the SELECT statement happens before the third function call, but it is not shown. It’s done with plain PHP code, not a MySQL-specific PHP function. Figure 9-1. The interaction between functions and resources when using the database Including Database Login Details

You’re going to create a file to hold the information for logging into MySQL. Storing this information in a file you include is recommended. If you change the database password, there is only one place that you need to change it, regardless of how many PHP files you have that access the database.

You don’t have to worry about anyone directly viewing the file and getting your database login details. The file, if requested by itself, is processed as a PHP file and returns a blank page.

Let’s call this file db_login.php and place it in the same directory as your other PHP files. The file is represented in Example 9-1.

Example 9-1. A template for setting database login settings

$db_host='hostname of database server';

$db_database='database name';

$db_username='username';

$db_password='password';

?>

In Example 9-2, we create this file to use a database on the same machine as the web server. We assign it a database name, username, and password.

$db_host='localhost';

$db_database='test';

$db_username='test';

$db_password='yourpass';

?>

Figure 9-2 illustrates how you’re going to use this file with other PHP files.

You’regoing to continue using t he database that you started to set up in Chapter 7. Figure 9-2. Reusing the login details in multiple files

Example 9-3. The SQL to recreate the test objects (continued)

DROP TABLE IF EXISTS books;

CREATE TABLE books (

title_id int(11) NOT NULL auto_increment,

title varchar(150) default NULL,

pages int(11) default NULL,

PRIMARY KEY (title_id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Dumping data for table books

--

INSERT INTO books VALUES (1,'Linux in a Nutshell',476),(2,'Classic Shell Scripting',256);

--

-- Table structure for table purchases

--

DROP TABLE IF EXISTS purchases;

CREATE TABLE purchases (

id int(11) NOT NULL auto_increment,

user varchar(10) default NULL,

title varchar(150) default NULL,

day date default NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Dumping data for table purchases

--

LOCK TABLES purchases WRITE;

INSERT INTO purchases VALUES (1,'Mdavis','Regular Expression Pocket Reference','2005-02-15'),(2,'Mdavis','JavaScript & DHTML Cookbook','2005-02-10');

I f you didn’t create the tables in Chapter 8, the code in Example 9-3 can be saved as backup.sql and run from the command prompt with the following syntax: mysql -u username -p password -D database_name < backup_file_name.sql Using the values from the examples, it becomes:

mysql -u test -pyourpass -D test < backup.sql

The database is called test, and it consists of three tables called books, authors, and purchases. Each table has a few sample rows. That’s enough to get us started querying from PHP.

Connecting to the Database

The first thing you need to do is connect to the database and check to make sure there’s a connection. Including the file that you set up to store your connection information allows you to use the variables instead of hardcoded values when you call the mysql_connect function, as shown in Example 9-4. We’re assembling one file,

db_test.php, by adding these code snippets.

Example 9-4. Including the connection values and calling mysql_connect in

db_test.php

// Include our login information

include('db_login.php');

// Connect

$connection = mysql_connect($db_host, $db_username, $db_password);

if (!$connection){

die ("Could not connect to the database:
". mysql_error( ));

}

The mysql_connect function takes the database host, username, and password as parameters. If the connection is successful, a link to a database is returned. FALSE is returned if a connection can’t be made. Check the return value from the function to make sure there’s a connection. If there’s a problem, such as an incorrec t password, print out a polite warning and the reason for the error using mysql_error.

Instead of simply echoing an error message, die( ) displays the error and stops the program. Not being able to access the database makes most database-driven pages fairly useless and prevents the user from seeing numerous errors.

Notice that we didn’t specify the database name yet.

Troubleshooting connection errors

One error you may get is:

Fatal error: Call to undefined function mysql_connect( ) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\db_test.php on line 4

This error occurs because PHP 5.x for Windows was downloaded, and MySQL support was not included by default. To fix this error, copy the php_mysql.dll file from the ext/ directory of the PHP ZIP file to C:\php, and then C:\WINDOWS\php.ini. Make sure there are two lines that are not commented out by a semicolon (;) at the beginning of the line like these:

extension_dir = "c:/PHP/ext/"

extension=php_mysql.dll

This will change the extension to include the directory to C:/php and include the MySQL extension, respectively. You can use the Search function of your text editor

to check whether the lines are already there and just need to be uncommented, or whether they need to be added completely.

You’ll need to restart Apache, and then MySQL support will be enabled.

Selecting the Database

Now that you’re connected, the next step is to select which database to use with the mysql_select_db command. It takes two parameters: the database name and,

opti onally, the database connection. If you don’t specify the database connection, the default is the connection from the last mysql_connect:

// Select the database

$db_select=mysql_select_db($db_database);

if (!$db_select)

{

die ("Could not select the database:
". mysql_error( ));

}

Again, it’s good practice to check for an error and display it every time you access the database.

While it’s possible to call mysql_select_db multiple times within the same script, it’s not considered good practice.

Now th at you’ve got a good database connection, you’re ready to execute your SQL query.

Building the SQL SELECT Query

Building a SQL query is as easy as setting a variable to the string that is your SQL query. Of course, you’ll need to use a valid SQL query, o r MySQL returns with an error when you execute the query. The variable name $query is used since the name reflects its purpose, but you can choose anything you’d like for a variable name. The SQL query in this example is SELECT * FROM books.

Unlike when you used the mysql command-line client, the query does

not have a semicolon at the end.

You can build up your query in parts using the string concatenate (.) operator:

// Assign the query

$select = ' SELECT ';

$column = ' * ';

$from = ' FROM ';

$tables = ' books ';

$where = ' NATURAL JOIN authors';

$query = $select.$column.$from.$tables.$where;

This code is a more flexible version of the following:

// Assign the query

$query = "SELECT * FROM books NATURAL JOIN authors";

The query string could also use a variable in the WHERE clause to limit which rows are returned based on user information or another query.

Now that you have your query assigned to a variable, you can execute it.

Executing the Query

To have the database execute the query, use the mysql_query function. It takes two parameters—the query and, optionally, the database link—and returns the result. Save a link to the results in a variable called, you guessed it, $result! This is also a good place to check the return code from mysql_query to make sure that there were no errors in the query string or the database connection by verifying that $result is not FALSE:

// Execute the query

$result = mysql_query( $query );

if (!$result){

die ("Could not query the database:
". mysql_error( ));

}

When the database executes the query, all of the results forma result set. These results correspond to the rows that you saw upon doing a query using the mysql

command-line client. To display them, you process each row, one at a time. Fetching and Displaying

Use mysql_fetch_row to get the rows from the result set. Its syntax is: array mysql_fetch_row ( resource $result);

It takes the result you stored in $result fromthe query as a parameter. It returns one row at a time from the query until there are no more rows, and then it returns FALSE. Therefore, you do a loop on the result of mysql_fetch_row and define some code to display each row:

// Fetch and display the results

while ($result_row = mysql_fetch_row(($result))){

echo 'Title: '.$result_row[1] . '
';

echo 'Author: '.$result_row[4] . '
';

echo 'Pages: '.$result_row[2] . '

';

}

The columns of the result row are stored in the array and can be accessed one at a time. The variable $result_row[2] accesses the second attribute (as defined in the query’s column order or the column order of the table if SELECT * is used) in the result row.

Fetch types

This is not the only way to fetch the results. Using mysql_fetch_array, PHP can place the results into an array in one step. It takes a result as its first parameter, and the way to bind the results as an optional second parameter. If MYSQL_ASSOC is specified, the results are indexed in an array based on their column names in the query. If MYSQL_NUM is specified, then the number starting at zero accesses the results. The

本科毕业设计文献综述范例(1)

###大学 本科毕业设计(论文)文献综述 课题名称: 学院(系): 年级专业: 学生姓名: 指导教师: 完成日期:

燕山大学本科生毕业设计(论文) 一、课题国内外现状 中厚板轧机是用于轧制中厚度钢板的轧钢设备。在国民经济的各个部门中广泛的采用中板。它主要用于制造交通运输工具(如汽车、拖拉机、传播、铁路车辆及航空机械等)、钢机构件(如各种贮存容器、锅炉、桥梁及其他工业结构件)、焊管及一般机械制品等[1~3]。 1 世界中厚板轧机的发展概况 19世纪五十年代,美国用采用二辊可逆式轧机生产中板。轧机前后设置传动滚道,用机械化操作实现来回轧制,而且辊身长度已增加到2m以上,轧机是靠蒸汽机传动的。1864年美国创建了世界上第一套三辊劳特式中板轧机,当时盛行一时,推广于世界。1918年卢肯斯钢铁公司科茨维尔厂为了满足军舰用板的需求,建成了一套5230mm四辊式轧机,这是世界上第一套5m以上的轧机。1907年美国钢铁公司南厂为了轧边,首次创建了万能式厚板轧机,于1931年又建成了世界上第一套连续式中厚板轧机。欧洲国家中厚板生产也是较早的。1910年,捷克斯洛伐克投产了一套4500mm二辊式厚板轧机。1940年,德国建成了一套5000mm四辊式厚板轧机。1937年,英国投产了一套3810mm中厚板轧机。1939年,法国建成了一套4700mm 四辊式厚板轧机。这些轧机都是用于生产机器和兵器用的钢板,多数是为了二次世界大战备战的需要。1941年日本投产了一套5280mm四辊式厚板轧机,主要用于满足海军用板的需要。20世纪50年代,掌握了中厚板生产的计算机控制。20世纪80年代,由于中厚板的使用部门萧条,许多主要产钢国家的中厚板产量都有所下降,西欧国家、日本和美国关闭了一批中厚板轧机(宽度一般在3、4米以下)。国外除了大的厚板轧机以外,其他大型的轧机已很少再建。1984年底,法国东北方钢铁联营敦刻尔克厂在4300mm轧机后面增加一架5000mm宽厚板轧机,增加了产量,且扩大了品种。1984年底,苏联伊尔诺斯克厂新建了一套5000mm宽厚板轧机,年产量达100万t。1985年初,德国迪林冶金公司迪林根厂将4320mm轧机换成4800mm 轧机,并在前面增加一架特宽得5500mm轧机。1985年12月日本钢管公司福山厂新型制造了一套4700mmHCW型轧机,替换下原有得轧机,更有效地控制板形,以提高钢板的质量。 - 2 -

PHP+AJAX教程(5)-AJAX MySQL数据库实例

PHP+AJAX教程(5):AJAX MySQL数据库实例 AJAX 可用来与数据库进行交互式通信。 AJAX 数据库实例 在下面的AJAX 实例中,我们将演示网页如何使用AJAX 技术从MySQL 数据库中读取信息。 在下拉列表中选择一个名字(测试说明:该实例功能未实现) 在此列出用户信息。 此列由四个元素组成: MySQL 数据库 简单的HTML 表单 JavaScript PHP 页面 数据库 将在本例中使用的数据库看起来类似这样: id FirstName LastName Age Hometown Job 1 Peter Griffin 41 Quahog Brewery 2 Lois Griffin 40 Newport Piano Teacher 3 Joseph Swanson 39 Quahog Police Officer 4 Glenn Quagmire 41

Quahog Pilot HTML 表单 上面的例子包含了一个简单的HTML 表单,以及指向JavaScript 的链接: <html><head><script src="selectuser.js"></script></head><body><form> Select a User:<select name="users" onchange="showUser(this.value)"><option value="1">Peter Griffin</option><option value="2">Lois Griffin</option><option value="3">Glenn Quagmire</option><option value="4">Joseph Swanson</option></select></form><p><div id="txtHint"><b>User info will be listed here.</b></div></p></body></html> 例子解释- HTML 表单 正如您看到的,它仅仅是一个简单的HTML 表单,其中带有名为"users" 的下拉列表,okooo澳客网这个列表包含了姓名,以及与数据库的"id" 对应的选项值。 表单下面的段落包含了名为"txtHint" 的div。这个div 用作从web 服务器检索到的信息的占位符。 当用户选择数据时,执行名为"showUser()" 的函数。该函数的执行由"onchange" 事件触发。 换句话说:每当用户改变下拉列表中的值,就会调用showUser() 函数。 JavaScript 这是存储在"selectuser.js" 文件中的JavaScript 代码: var xmlHttpfunction showUser(str){ xmlHttp=GetXmlHttpObject()if (xmlHttp==null){alert ("Browser does not support HTTP Request")return}var url="getuser.php"url=url+"?q="+strurl=url+"&sid="+Mat h.random()xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true)xmlHttp.send(null)}function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ document.getElementById("txtHint").i nnerHTML=xmlHttp.responseText } }function GetXmlHttpObject(){var xmlHttp=null;try{// Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();}catch (e){//Internet Explorertry { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }}return xmlHttp;} 例子解释: stateChanged() 和GetXmlHttpObject 函数与PHP AJAX 请求那一节中的相同,您可以参阅其中的相关解释。 showUser() 函数 假如下拉列表中的项目被选择,函数执行: 调用GetXmlHttpObject 函数来创建XMLHTTP 对象定义发送到服务器的URL(文件名)向URL 添加带有下拉列表内容的参数(q) 添加一个随机数,以防服务器使用缓存的文件当触发事件时调用stateChanged 通过给定的URL 打开XMLHTTP 对象向服务器发送HTTP

使用PHP设计与实现旅游信息网站文献综述

新疆农业大学 专业文献综述 题目: 使用PHP设计与实现旅游信息网站文献综 述 姓名: 学院: 计算机与信息工程学院 专业: 信息管理与信息系统 班级: 051 学号: 指导教师: 李萍职称:讲师 2009年12月04日 新疆农业大学教务处制

使用PHP设计与实现旅游信息网站 Xxxx,李萍 摘要:随着近年来旅游业的蓬勃发展 ,旅游信息网站的建立与完善也越来越重要。本文阐述了旅游信息网站的概念以及功能 ,并分析旅游信息网站的现状 ,针对现状提出建立旅游信息网站的原则和对策。希望本文的研究能引起有关方面对旅游信息网站的重视 ,并为今后旅游信息网站的建立提供一些可行性建议。 关键词:旅游信息;Web;PHP 前言: 随着网络时代的发展,特别是近几年,个人生活几乎离不开网络。国内网络系统大多采用ASP开发,能满足个人应用,但是在网站建设之间缺少一种完美的选择,导致许多网站建设并没有达到理想的目标。本文章为此考虑,通过基于PHP开发网站,能给开源界带来新的气息,能为我们提供更优秀的网络交流方式,PHP开发网站的应用能提高资源和知识共享的使用效率,给个人生活和企业办公带来更舒适,智能的服务。 现代信息技术革命的迅猛发展,正冲击并进而改变着经济和社会结构。信息化的程度已经成为一个国家,一个企业,一个组织仍至一个个人发展的基础和竞争成败的关键。在信息社会中,网站作为信息转播速度快,覆盖面广的信息发布载体,已经被普遍视为“第四媒体”,成为一个社会组织展示整体形象的平台,实现远程信息交互的平台,采集,整合信息资源的平台。在互联网上有位置,有形象,有信息,既是国际科技界公认的交流方式,也是科技社团向公众展示自我和开展社会服务的主要途径。[1] 1 旅游信息网的发展现状分析 1.1 旅游信息网站概况 旅游信息网站是城市中为游客(特别是散客),市民提供信息咨询,投诉,救援等服务的一种旅游设施,具有较强的公益性。[5]旅游信息网站为公众提供旅游信息服务。旅游信息网站就是利用电子技术,信息技术,数据库技术和网络技术手段,充分发挥各类旅游信息资源的效用,使之成为旅游业发展的生产力,成为推动旅游产业发展和管理上水平的重要手段。具体地说旅游信息网站就是把景点,景区,饭店,旅行社,交通,气候等与地理位置和空间分布有关的旅游信息,通过技术手段采集,编辑,处理转换成用文字,数字图形,图像,声音,动画等来表示它们的内容或特征。 旅游信息是指充分利用信息技术,数据库技术和网络技术,对旅游有关的实体资源,信息资源,生产要素资源进行深层次的分配,组合,加工,传播,销售,以便促进传统旅游业向现代旅游业的转化,加快旅游业的发展速度,提高旅游业的生产效率[9]。 1.2旅游信息网站分类 在介绍旅游信息网站的时候很自然要涉及旅游信息网站的概念,基于目前旅游信息网站应用的主要范围,可以将其理解为通常所说的旅游服务网站,它是为

SQL数据库外文翻译--数据库的工作

Working with Databases This chapter describes how to use SQL statements in embedded applications to control databases. There are three database statements that set up and open databases for access: SET DATABASE declares a database handle, associates the handle with an actual database file, and optionally assigns operational parameters for the database. SET NAMES optionally specifies the character set a client application uses for CHAR, VARCHAR, and text Blob data. The server uses this information to transli terate from a database?s default character set to the client?s character set on SELECT operations, and to transliterate from a client application?s character set to the database character set on INSERT and UPDATE operations. g CONNECT opens a database, allocates system resources for it, and optionally assigns operational parameters for the database.All databases must be closed before a program ends. A database can be closed by using DISCONNECT, or by appending the RELEASE option to the final COMMIT or ROLLBACK in a program. Declaring a database Before a database can be opened and used in a program, it must first be declared with SET DATABASE to: CHAPTER 3 WORKING WITH DATABASES. Establish a database handle. Associate the database handle with a database file stored on a local or remote node.A database handle is a unique, abbreviated alias for an actual database name. Database handles are used in subsequent CONNECT, COMMIT RELEASE, and ROLLBACK RELEASE statements to specify which databases they should affect. Except in dynamic SQL (DSQL) applications, database handles can also be used inside transaction blocks to qualify, or differentiate, table names when two or more open databases contain identically named tables. Each database handle must be unique among all variables used in a program. Database handles cannot duplicate host-language reserved words, and cannot be InterBase reserved words.The following statement illustrates a simple database declaration:

毕业设计文献综述范文

四川理工学院毕业设计(文献综述)红外遥控电动玩具车的设计 学生:程非 学号:10021020402 专业:电子信息工程 班级:2010.4 指导教师:王秀碧 四川理工学院自动化与电子信息学院 二○一四年三月

1前言 1.1 研究方向 随着科技的发展,越来越多的现代化电器走进了普通老百姓的家庭,而这些家用电器大都由红外遥控器操控,过多不同遥控器的混合使用带来了诸多不便。因此,设计一种智能化的学习型遥控器,学习各种家用电器的遥控编码,实现用一个遥控器控制所有家电,已成为迫切需求。首先对红外遥控接收及发射原理进行分析,通过对红外编码理论的学习,设计以MSP430单片机为核心的智能遥控器。其各个模块设计如下:红外遥控信号接收,红外接收器把接收到的红外信号经光电二极管转化成电信号,再对电信号进行解调,恢复为带有一定功能指令码的脉冲编码;接着是红外编码学习,利用单片机的输入捕捉功能捕捉载波的跳变沿,并通过定时器计时记下载波的周期和红外信号的波形特征,进行实时编码;存储电路设计,采用I2C总线的串行E2PROM(24C256)作为片外存储器,其存储容量为8192个字节,能够满足所需要的存取需求;最后是红外发射电路的设计,当从存储模块中获取某红外编码指令后,提取红外信号的波形特征信息并进行波形还原;将其调制到38KHZ的载波信号上,通过三极管放大电路驱动红外发光二极管发射红外信号,达到红外控制的目的。目前,国外进口的万能遥控器价格比较昂贵,还不能真正走进普通老百姓的家中。本文在总结和分析国外设计的基础上,设计一款以MSP430单片机为核心的智能型遥控器,通过对电视机和空调的遥控编码进行学习,能够达到预期的目的,具有一定的现实意义。 1.2 发展历史 红外遥控由来已久,但是进入90年代,这一技术又有新的发张,应用范围更加广泛。红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。 60年代初,一些发达国家开始研究民用产品的遥控技术,单由于受当时技术条件限制,遥控技术发展很缓慢,70年代末,随着大规模集成电路和计算机技术的发展,遥控技术得到快速发展。在遥控方式上大体经理了从有线到无限的超声波,从振动子到红外线,再到使用总线的微机红外遥控这样几个阶段。无论采用何种方式,准确无误传输新信号,最终达到满意的控制效果是非常重要的。最初的无线遥控装置采用的是电磁波传输信号,由于电磁波容易产生干扰,也易受干扰,因此逐渐采用超声波和红外线媒介来传输信号。与红外线相比,超声传感器频带窄,所能携带的信息量少扰而引起误动作。较为理想的是光控方式,逐渐采用红外线的遥控方式取代了超声波遥控方式,出现了红外线多功能遥控器,成为当今时代的主流。 1.3 当前现状 红外线在频谱上居于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体。信息可以直接对红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进调制,接收端再去掉载波,取到信息。从信

php毕业设计外文翻译--通过PHP访问MySQL

原文: Getting PHP to Talk to MySQl Now that you’re comfortable using the MySQL client tools to manipulate data in the database, you can begin using PHP to display and modify data from the database. PHP has standard functions for working with the databas e.First, we’re going to discuss PHP’s built-in database functions. We’ll also show you how to use the The PHP Extension and Application Repository (PEAR) database functions that provide the ability to use the same functions to access any supported database. This type of flexibility comes from a process called abstraction. In programming interfaces, abstraction simplifies a complex interaction. It works by removing any nonessential parts of the interaction, allowing you to concentrate on the important pa rts. PEAR’s DB classes are one such database interface abstraction. The information you need to log into a database is reduced to the bare minimum. This standard format allows you to interact with MySQL, as well as other databases using the same functions. Similarly, other MySQL-specific functions are replaced with generic ones that know how to talk to many databases. For example, the MySQL-specific connect function is: mysql_connect($db_host, $db_username, $db_password); versus PEAR’s DB connect function: $connection = DB::connect("mysql://$db_username:$db_password@$db_host/$db_database"); The same basic information is present in both commands, but the PEAR function also specifies the type of databases to which to connect. You can connect to MySQL or o ther supported databases. We’ll discuss both connection methods in detail. In this chapter, you’ll learn how to connect to a MySQL server fromPHP, how to use PHP to access and retrieve stored data, and how to correctly display information to the user.

数据库外文参考文献及翻译.

数据库外文参考文献及翻译 数据库外文参考文献及翻译数据库管理系统——实施数据完整性一个数据库,只有用户对它特别有信心的时候。这就是为什么服务器必须实施数据完整性规则和商业政策的原因。执行SQL Server的数据完整性的数据库本身,保证了复杂的业务政策得以遵循,以及强制性数据元素之间的关系得到遵守。因为SQL Server的客户机/服务器体系结构允许你使用各种不同的前端应用程序去操纵和从服务器上呈现同样的数据,这把一切必要的完整性约束,安全权限,业务规则编码成每个应用,是非常繁琐的。如果企业的所有政策都在前端应用程序中被编码,那么各种应用程序都将随着每一次业务的政策的改变而改变。即使您试图把业务规则编码为每个客户端应用程序,其应用程序失常的危险性也将依然存在。大多数应用程序都是不能完全信任的,只有当服务器可以作为最后仲裁者,并且服务器不能为一个很差的书面或恶意程序去破坏其完整性而提供一个后门。SQL Server使用了先进的数据完整性功能,如存储过程,声明引用完整性(DRI),数据类型,限制,规则,默认和触发器来执行数据的完整性。所有这些功能在数据库里都有各自的用途;通过这些完整性功能的结合,可以实现您的数据库的灵活性和易于管理,而且还安全。声明数据完整性声明数据完整原文请找腾讯3249114六,维-论'文.网 https://www.wendangku.net/doc/cf7786280.html, 定义一个表时指定构成的主键的列。这就是所谓的主键约束。SQL Server使用主键约束以保证所有值的唯一性在指定的列从未侵犯。通过确保这个表有一个主键来实现这个表的实体完整性。有时,在一个表中一个以上的列(或列的组合)可以唯一标志一行,例如,雇员表可能有员工编号( emp_id )列和社会安全号码( soc_sec_num )列,两者的值都被认为是唯一的。这种列经常被称为替代键或候选键。这些项也必须是唯一的。虽然一个表只能有一个主键,但是它可以有多个候选键。 SQL Server的支持多个候选键概念进入唯一性约束。当一列或列的组合被声明是唯一的, SQL Server 会阻止任何行因为违反这个唯一性而进行的添加或更新操作。在没有故指的或者合适的键存在时,指定一个任意的唯一的数字作为主键,往往是最有效的。例如,企业普遍使用的客户号码或账户号码作为唯一识别码或主键。通过允许一个表中的一个列拥有身份属性,SQL Server可以更容易有效地产生唯一数字。您使用的身份属性可以确保每个列中的值是唯一的,并且值将从你指定的起点开始,以你指定的数量进行递增(或递减)。(拥有特定属性的列通常也有一个主键或唯一约束,但这不是必需的。)第二种类型的数据完整性是参照完整性。 SQL Server实现了表和外键约束之间的逻辑关系。外键是一个表中的列或列的组合,连接着另一个表的主键(或着也可能是替代键)。这两个表之间的逻辑关系是关系模型的基础;参照完整性意味着这种关系是从来没有被违反的。例如,一个包括出版商表和标题表的简单的select例子。在标题表中,列title_id (标题编号)是主键。在出版商表,列pub_id (出版者ID )是主键。 titles表还包括一个pub_id列,这不是主键,因为出版商可以发布多个标题。相反, pub_id是一个外键,它对应着出版商表的主键。如果你在定义表的时候声明了这个关系, SQL Server由双方执行它。首先,它确保标题不能进入titles表,或在titles表中现有的pub_id无法被修改,除非有效的出版商ID作为新pub_id出现在出版商表中。其次,它确保在不考虑titles表中对应值的情况下,出版商表中的pub_id的值不做任何改变。以下两种方法可

PHP程序mysql连接文件信息修改

PHP程序MySQL文件连接信息修改 注意事项:所有路径均相对于程序的安装目录,修改信息的时候切记不要删除两边的引号 1.shopex4.8 配置文件路径: \config\config.php 配置信息 define('DB_USER', 'MYSQL登录用户'); define('DB_PASSWORD', 'MYSQL密码'); define('DB_NAME', '数据库名'); define('DB_HOST', '服务器地址'); 2.shopex4.7 配置文件路径 \include\mall_config.php 配置信息 $dbHost = "服务器地址"; $dbName = "数据库名"; $dbUser = "MYSQL登录用户名"; $dbPass = "数据库密码"; 3.discuz 配置文件路径 \config.inc.php 配置信息 $dbhost = '服务器地址'; // 数据库服务器 $dbuser = '数据库名'; // 数据库用户名 $dbpw = '数据库密码'; // 数据库密码 $dbname = '数据库名'; // 数据库名 4. phpwind 配置文件路径 \data\sql_config.php 配置文件信息 define('DB_USER', '数据库用户'); define('DB_PASSWORD', '数据库密码'); define('DB_NAME', '数据库名'); define('DB_HOST', '数据库地址'); 5.PHPCMS 配置文件路径 \config.inc.php 配置文件信息 $CONFIG['dbhost'] = '数据库主机'; $CONFIG['dbuser'] = '数据库用户名';

数据库设计外文翻译

外文翻译: 索引 原文来源:Thomas Kyte.Expert Oracle Database Architecture .2nd Edition. 译文正文: 什么情况下使用B*树索引? 我并不盲目地相信“法则”(任何法则都有例外),对于什么时候该用B*索引,我没有经验可以告诉你。为了证明为什么这个方面我无法提供任何经验,下面给出两种等效作法:?使用B*树索引,如果你想通过索引的方式去获得表中所占比例很小的那些行。 ?使用B *树索引,如果你要处理的表和索引许多可以代替表中使用的行。 这些规则似乎提供相互矛盾的意见,但在现实中,他们不是这样的,他们只是涉及两个极为不同的情况。有两种方式使用上述意见给予索引: ?作为获取表中某些行的手段。你将读取索引去获得表中的某一行。在这里你想获得表中所占比例很小的行。 ?作为获取查询结果的手段。这个索引包含足够信息来回复整个查询,我们将不用去查询全表。这个索引将作为该表的一个瘦版本。 还有其他方式—例如,我们使用索引去检索表的所有行,包括那些没有建索引的列。这似乎违背了刚提出的两个规则。这种方式获得将是一个真正的交互式应用程序。该应用中,其中你将获取其中的某些行,并展示它们,等等。你想获取的是针对初始响应时间的查询优化,而不是针对整个查询吞吐量的。 在第一种情况(也就是你想通过索引获得表中一小部分的行)预示着如果你有一个表T (使用与早些时候使用过的相一致的表T),然后你获得一个像这样查询的执行计划: ops$tkyte%ORA11GR2> set autotrace traceonly explain ops$tkyte%ORA11GR2> select owner, status 2 from t 3 where owner = USER; Execution Plan ---------------------------------------------------------- Plan hash value: 1049179052 ------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | ------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 2120 | 23320 | | 1 | TABLE ACCESS BY INDEX ROWID |T | 2120 | 23320 | | *2 | INDEX RANGE SCAN | DESC_T_IDX | 8 | | ------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 2 - access(SYS_OP_DESCEND("OWNER")=SYS_OP_DESCEND(USER@!)) filter(SYS_OP_UNDESCEND(SYS_OP_DESCEND("OWNER"))=USER@!) 你应该访问到该表的一小部分。这个问题在这里看是INDEX (RANGE SCAN) 紧跟在

本科毕业设计方案外文翻译范本

I / 11 本科毕业设计外文翻译 <2018届) 论文题目基于WEB 的J2EE 的信息系统的方法研究 作者姓名[单击此处输入姓名] 指导教师[单击此处输入姓名] 学科(专业 > 所在学院计算机科学与技术学院 提交日期[时间 ]

基于WEB的J2EE的信息系统的方法研究 摘要:本文介绍基于工程的Java开发框架背后的概念,并介绍它如何用于IT 工程开发。因为有许多相同设计和开发工作在不同的方式下重复,而且并不总是符合最佳实践,所以许多开发框架建立了。我们已经定义了共同关注的问题和应用模式,代表有效解决办法的工具。开发框架提供:<1)从用户界面到数据集成的应用程序开发堆栈;<2)一个架构,基本环境及他们的相关技术,这些技术用来使用其他一些框架。架构定义了一个开发方法,其目的是协助客户开发工程。 关键词:J2EE 框架WEB开发 一、引言 软件工具包用来进行复杂的空间动态系统的非线性分析越来越多地使用基于Web的网络平台,以实现他们的用户界面,科学分析,分布仿真结果和科学家之间的信息交流。对于许多应用系统基于Web访问的非线性分析模拟软件成为一个重要组成部分。网络硬件和软件方面的密集技术变革[1]提供了比过去更多的自由选择机会[2]。因此,WEB平台的合理选择和发展对整个地区的非线性分析及其众多的应用程序具有越来越重要的意义。现阶段的WEB发展的特点是出现了大量的开源框架。框架将Web开发提到一个更高的水平,使基本功能的重复使用成为可能和从而提高了开发的生产力。 在某些情况下,开源框架没有提供常见问题的一个解决方案。出于这个原因,开发在开源框架的基础上建立自己的工程发展框架。本文旨在描述是一个基于Java的框架,该框架利用了开源框架并有助于开发基于Web的应用。通过分析现有的开源框架,本文提出了新的架构,基本环境及他们用来提高和利用其他一些框架的相关技术。架构定义了自己开发方法,其目的是协助客户开发和事例工程。 应用程序设计应该关注在工程中的重复利用。即使有独特的功能要求,也

实验八 PHP与Mysql数据库交互实验

实验八 PHP与Mysql数据库交互实验 一、实验目的 1.掌握PHP连接MySql数据库的方法; 2.掌握PHP操作MySql数据库的方法; 3.理解PHP操作MySql数据库的流程。 二、实验方法 通过实验,学生可以做到: 1.使用PHP连接MySql数据库。 2.使用PHP对MySql数据库进行插入、删除、查询操作。 3.制作简单的动态交互网页。 三、实验过程 (一)创建数据库和数据表 1.利用phpMyAdmin在图形界面下创建数据库和数据表 在地址栏输入http://localhost:8080/phpmyadmin/,在弹出的窗口的用户栏内输入“root”,密码栏内输入安装时预留的密码,显示如下页面则表明登录成功。 在左侧选择数据库“test”(如果没有,则创建之),并向其中添加“学生信息”表(studentInfo),表中添加字段“姓名、年龄、性别、住址、专业”等。 如果操作正确,显示下图则表明数据表创建成功,下面可以向表中添加数据。 2.向表中添加内容 选择要进行操作的数据表(studentInfo),然后单击“插入”即可进行数据的插入操作。

此处插入数据的操作不是很方便,是逐字段进行的。 测试数据请学生自行编写,至少插入十条不同的数据,以便后续使用。 (二)使用PHP 操作MySql 数据库 1.PHP 连接Mysql 数据库服务器 在网站根目录下新建文件conn.php ,用于连接Mysql 数据库。如果连接成功,给出“已经成功连接MySQL 数据库”的信息,否则,给出“不能连接到MySQL 数据库”的信息。示例代码如下: 在浏览器地址栏输入:http://localhost :端口号/conn.php ,回车,显示如图2所示,则表明PHP 与MySQL 能够协同工作了。 2.PHP 选择要使用的数据库 建立数据库链接后,需要使用mysql_select_db()函数,来指定一个数据库,本例为刚刚创建的test 数据库。下面演示mysql_select_db()函数的使用方法,示例代码如下。

大学毕业设计仓库管理系统数据库计算机外文参考文献原文及翻译

河北工程大学毕业论文(设计)英文参考文献原文复印件及译文 数据仓库 数据仓库为商务运作提供结构与工具,以便系统地组织、理解和使用数据进行决策。大量组织机构已经发现,在当今这个充满竞争、快速发展的世界,数据仓库是一个有价值的工具。在过去的几年中,许多公司已花费数百万美元,建立企业范围的数据仓库。许多人感到,随着工业竞争的加剧,数据仓库成了必备的最新营销武器——通过更多地了解客户需求而保住客户的途 径。“那么”,你可能会充满神秘地问,“到底什么是数据仓库?” 数据仓库已被多种方式定义,使得很难严格地定义它。宽松地讲,数据仓库是一个数据库,它与组织机构的操作数据库分别维护。数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。 按照W. H. Inmon,一位数据仓库系统构造方面的领头建筑师的说法,“数 (1) 视图。 (2)

般文件和联机事务处理记录,集成在一起。使用数据清理和数据集成技术,确保命名约定、编码结构、属性度量的一致性等。 (3)时变的:数据存储从历史的角度(例如,过去5-10 年)提供信息。数据仓库中的关键结构,隐式或显式地包含时间元素。 (4) 非易失的:数据仓库总是物理地分离存放数据;这些数据源于操作环境下的应用数据。由于这种分离,数据仓库不需要事务处理、恢复和并行控制机制。通常,它只需要两种数据访问:数据的初始化装入和数据访问。 概言之,数据仓库是一种语义上一致的数据存储,它充当决策支持数据模型的物理实现,并存放企业决策所需信息。数据仓库也常常被看作一种体系结构,通过将异种数据源中的数据集成在一起而构造,支持结构化和启发式查询、分析报告和决策制定。 “好”,你现在问,“那么,什么是建立数据仓库?” 根据上面的讨论,我们把建立数据仓库看作构造和使用数据仓库的过程。数据仓库的构造需要数据集成、数据清理、和数据统一。利用数据仓库常常需要一些决策支持技术。这使得“知识工人”(例如,经理、分析人员和主管)能够使用数据仓库,快捷、方便地得到数据的总体视图,根据数据仓库中的信息做出准确的决策。有些作者使用术语“建立数据仓库”表示构造数据仓库的过程,而用术语“仓库DBMS”表示管理和使用数据仓库。我们将不区分二者。 “组织机构如何使用数据仓库中的信息?”许多组织机构正在使用这些信息支持商务决策活动,包括: (1)、增加顾客关注,包括分析顾客购买模式(如,喜爱买什么、购买时间、预算周期、消费习惯); (2)、根据季度、年、地区的营销情况比较,重新配置产品和管理投资,调整生产策略; (3)、分析运作和查找利润源; (4)、管理顾客关系、进行环境调整、管理合股人的资产开销。 从异种数据库集成的角度看,数据仓库也是十分有用的。许多组织收集了形形色色数据,并由多个异种的、自治的、分布的数据源维护大型数据库。集成这些数据,并提供简便、有效的访问是非常希望的,并且也是一种挑战。数据库工业界和研究界都正朝着实现这一目标竭尽全力。 对于异种数据库的集成,传统的数据库做法是:在多个异种数据库上,建立一个包装程序和一个集成程序(或仲裁程序)。这方面的例子包括IBM 的数据连接程序和Informix的数据刀。当一个查询提交客户站点,首先使用元数据字典对查询进行转换,将它转换成相应异种站点上的查询。然后,将这些查询

建筑学毕业设计外文翻译范文

建筑学毕业设计外 文翻译

本科生毕业设计 外文资料翻译 专业建筑学 班级 092班 姓名 XXX 指导教师 XXX 所在学院 XXX 附件 1.外文资料翻译译文;2.外文原文

学校建筑规划设计漫谈 在校园内的功能和各种需求亦趋向于多元化,在规划、设计中必须要找出一种合适的方法来适应、符合现在及未来的世界潮流需要。 1、学校的功能和秩序 学校特别是高等学校的功能相对来说是比较复杂的,在规划设计中要充分考虑到学校中的功能分区和教学的秩序,才能做到有合理的设计和良好的规划。 教学区是校园的核心,是校园建设中的最关键的部分。学校中的一切其它功能均是围绕其进行的。教学区的布局主要有组团式与网络式两种主要设计方法。组团式便于院系相对独立地组织教学活动与进行管理,更能适应建校周期较长而分期施工的现实。“院落”是是中国传统的建筑布局形式,由建筑所围成的庭院形成社交性的公共空间,也有利于学校中的交流。网络式的发展规划有利于不同的科系在今后的发展中专业更新与规模调整,并可灵活调节教学用房的使用性质,因此被现代的新型校园规划布局所偏爱,它利于当前国内的大学院校、院系合并和学科调整的教学改革大趋势。 学生宿舍生活区是大学校园内又一个重要的组成部分,无论改革后学生生活区社会化管理落实的力度有多大,还是由于扩招

形式的“不是数着床板招生”的局面到何种程度,在当前的实际情况下,新建的大学校园依然需要规划好学生生活区的建设。当然要充分考虑到如何便于社会化的管理,有利于形成独立的管理系统,为以后的发展留有可能性。 2、学校的交通组织 高等学校交通组织中,首要的是要体现以人为本的思想。根据教师、学生的心理及行为方式研究各种道路组织、形态和层次,创造一个满足校园使用者的物质和精神上要求的校园环境。 现代校园要求建筑物之间能联络方便、尽量通畅、便捷。为此,各类建筑物的设计,多采用集中式的布局,建筑群体也多以成团的方式组合,尽量减少楼间的距离几交通路线。各个相对独立的区域之间,也尽量打通分割界限,室内外都设有方便的连廊和通道,使建筑群体在整体上能联络通畅,达到提高和保证交通、交流、传递、沟通之最佳的效率。 3、学校的环境和可持续发展 环境对于人心理的影响,以及反馈对人情绪的感染,都会产生物质的效应。人在良好的环境中,在使人精神振奋的条件下,无疑会更多的诱发思想的灵感和智慧的火花,这对教学、科研的作用虽是无形的,但肯定是有效的。现代的校园的环境设计,应该立足于创造优美高雅有文化的校园环境,以适应人的精神需要,提高人的修养,陶冶人的情操……。如立体绿化、室外美

php页面连接数据库与跳转

PHP连接MYSQL数据库代码 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- PHP连接ACCESS数据库代码方法 -------------------------------------------------------------------------------- Open($connstr); $rs = new com("ADODB.RecordSet"); $rs->Open("select * from szd_t",$conn,1,1); while(! $rs->eof) { $f = $rs->Fields(1); echo $f->value; $rs->MoveNext(); } ?> --------------------------------------------------------------------------------

相关文档
相关文档 最新文档