PHP_MySQL教程-第三天 基本函数第1/2页

第一页 基本函数 
欢迎来到本教程的第三课,也是最后一课。如果您已经学过第一课和第二课,那么您已经掌握了MySQL和PHP的安装及编程的基本知识。下面我们要介绍PHP的一些其他函数,这些函数可能会对您有用,使您的开发过程更加简单。首先我们来看看头文件。 
大家应该知道头文件的一些基本概念吧?头文件是一个外部文件,它的内容被包含到主程序中。方法也十分简单:在程序文件中引用头文件名,这个头文件就会包含进来了。在PHP中使用头文件,会涉及两个函数:include()和require()。这两个函数差别很小,却很重要,所以我们要认真研究一下。require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处理。因此,如果您在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来。 
而include()函数只是在执行到这一条语句时才会把头文件内容包含进来。如果程序没运行到这里,那PHP是不会管它的。这就意味着,您在条件判定部分使用include时,它会完全按照您希望的那样工作。 
还有,如果您用了require()函数,而您指定的头文件并不存在,那么程序将会停止运行并产生错误。如果您用了include(),程序会产生一个警告信息,但是会继续运行。您可以亲自试一下,运行下面的程序,然后把include()换成require(),再比较两个程序运行的结果。 


代码如下:

<html> 
<body> 
<?php 
include("emptyfile.inc"); 
echo "Hello World"; 
?> 
</body> 
</html>

网页制作|网站建设|数据采集.
我喜欢把头文件的后缀名起成.inc,这样就可以把头文件和一般的程序区分开来。如果您也这么做,那么请您修改Web服务器软件的配置文件,使它能够把.inc文件也当作PHP文件来处理。否则,黑客们也许会猜到您的头文件名,然后用浏览器把头文件内容以纯文本格式显示出来。此时如果您的头文件中有些机密信息(如数据库口令等)那就糟糕了。 
那么,您用头文件来做什么呢?很简单!把对所有程序都通用的那些内容放到头文件里。象HTML文件头啦,脚注啦,数据库连接代码啦,还有您自己定义的一些函数什么的。把下面的文字拷贝到一个文件中,保存为header.inc。


代码如下:

<?php 
$db = mysql_connect("localhost", "root"); 
mysql_select_db("mydb",$db); 
?> 
<html> 
<head> 
<title> 
<?php echo $title ?> 
</title> 
</head> 
<body> 
<center><h2><?php echo $title ?></h2></center>

非常全面的一个php技术网站, 有相当丰富的文章和源代码.
然后再创建另外一个文件,名字是footer.txt,该文件可以包含一些程序结束时用到的一些文字和标记。 
现在,我们再来创建一个文件,这个文件里面是真正的PHP程序代码。试一下下面的代码,当然,您要确认MySQL数据库服务器正在运行。


代码如下:

<?php 
$title = "Hello World"; 
include("header.inc"); 
$result = mysql_query("SELECT * FROM employees",$db); 
echo "<table border=1>n"; 
echo "<tr><td>名字</td><td>职位</tr>n"; 
while ($myrow = mysql_fetch_row($result)) { 
    printf("<tr><td>%s %s</td><td>%s</tr>n", $myrow[1], $myrow[2], $myrow[3]); 

echo "</table>n"; 
include("footer.inc"); 
?>

看到发生了什么事了吗?头文件里的内容被合并到程序中,PHP把所有的代码都执行了一遍。注意在包含header.inc头文件之前$title是如何定义的。在header.inc中的代码可以访问到它的值。这样,网页的标题就被改掉了。现在,您可以在任何程序中使用header.inc头文件了,您所要做的不过是在每个主程序中为$title变量取一个合适的值。 
头文件、HTML、条件判定语句,还有循环语句,这些东西加在一些,您就可以用最简练的代码,写出功能各异的各种复杂程序来。在与函数同时使用时,头文件更能发挥它的效力,我们后面就会看到。 
接下去,我们会介绍精彩的部分:数据校验。>>

第二页 数据校验 
想象一下这样的情形:我们把数据库都设计妥当了,现在请用户输入信息来写到数据库中去。假设您有一个字段是要求数字类型的信息,比如价格;而某个可爱的用户,却在这一栏里输入了文字信息,使得您的应用程序的执行过程出现了故障。对您在SQL语句中提供的文字类型的数据,MySQL数据库拒不接受,并向您提出了“严正抗议”。 
怎么办呢?您要用数据校验来防止以上状况发生。 
简单地讲,数据校验是指我们对数据(通常是用户经由HTML表格传过来的)进行检查,看看它是否遵从一定的规则。规则可以是多种多样的,比如某一数据元素不能为空,或者要求某一数据项的内容必须满足一定的要求(例如前面的例子中要求必须是数字而不是文字,或者要求电子邮件地址中一定要包含一个“@”字等等)。 
数据校验既可以在服务器一端作,也可以在客户端来作。PHP是用来作服务器一端的数据校验的,而JavaScript或其他客户端脚本编程语言则能够提供客户端的数据校验功能。本文说的是PHP,所以我们在这里着重介绍服务器端的校验。如果您想找一些现成的、在客户端运行的数据较验程序,那您可以去网猴程序库看看。 
暂时把数据库放在一边不谈,我们先来说说PHP的数据校验方法。如果您愿意(或者说,您想记录我们要校验的那些数据的话),您可以在前面所建的员工数据库的里加入其他字段,很简单,用MySQL的ALTER 语句就行了。 
有好几个PHP功能都可以用来作数据校验的工作,有些很简单,有些则复杂一些。其中strlen()是比较简单的一个函数,它能够告诉我们一个变量的长度。 
更复杂一点儿的是ereg(),这个函数可以处理完整的常规表达式来进行复杂的校验。我不想就常规表达式讲得太深,因为许多书都是专门写这个问题的。不过我会在下一页中给出一些简单的例子。 
我们先从一个简单的例子开始吧。下面这个程序要检查一个变量是否存在。


代码如下:

<html> 
<body> 
<?php 
if ($submit) { 
    if (!$first || !$last) { 
        $error = "对不起,您必须填写所有的栏目!"; 
    } else { 
        // 处理表格输入内容 
        echo "谢谢!"; 
    } 

if (!$submit || $error) { 
    echo $error; 
    ?> 
    <P> 
    <form method="post" action="<?php echo $PHP_SELF ?>"> 
    第一栏: <input type="text" name="名" value="<?php echo $first ?>"><br>    第二栏: <input type="text" name="姓" value="<?php echo $last ?>"><br>    <input type="Submit" name="submit" value="输入信息"> 
    </form> 
    <?php 
} // if结束 
?> 
</body> 
</html>

这段程序中关键的地方是嵌套的条件判定语句。第一层检查用户是否按了发送数据的按钮。如果是,程序接着检查$first和$last两个变量是否都存在。那个 || 符号表示“或”,而 ! 符号表示“非”。那一句程序用一般语言描述就是“如果$first不存在或者$last不存在,那么就把 $error变量置成下面的值。” 
接下来,我们再进一步,检查一段文字的长度。这对用户口令的检查是很有必要的,因为您不想让某些懒惰的用户输入只有一、两个字的口令,可能会要求他们输入六位长的口令。 
我们已经讲到strlen()这个函数了。它只是简单地返回一个数字,该数字等于被测变量中所包含的字符个数。这里,我修改一下上面的程序,检查一下$first与$last的长度。


代码如下:

<html> 
<body> 
<?php 
if ($submit) { 
    if (strlen($first) < 6 || strlen($last) < 6) { 
        $error = "对不起,您必须填写所有栏目!"; 
    } else { 
        // 处理表格输入内容 
        echo "谢谢!"; 
    } 

if (!$submit || $error) { 
    echo $error; 
    ?> 
    <P> 
    <form method="post" action="<?php echo $PHP_SELF ?>"> 
    第一栏: <input type="text" name="名" value="<?php echo $first ?>"><br>    第二栏: <input type="text" name="姓" value="<?php echo $last ?>"><br>    <input type="Submit" name="submit" value="输入信息"> 
    </form> 
    <?php 
} // if结束 
?> 
</body> 
</html>

您可以执行一下这段程序,输入六个字或少于六个字的内容。这种校验很简单,但很有效。>>

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • php Mysql日期和时间函数集合

    收集的比较全的Mysql日期和mysql时间函数DATE_FORMAT(date,format)  根据format字符串格式化date值.下列修饰符可以被用在format字符串中: %M 月名字(January--December)  %W 星期名字(Sunday--Saturday)  %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等.)  %Y 年, 数字, 4 位  %y 年, 数字, 2 位  %a 缩写的星期名字(Sun--Sat)  %d 月份中的天数, 数字(00

  • PHP函数addslashes和mysql_real_escape_string的区别

    首先:不要使用mysql_escape_string,它已被弃用,请使用mysql_real_escape_string代替它. mysql_real_escape_string和addslashes的区别在于: 区别一: addslashes不知道任何有关MySQL连接的字符集.如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'.".\和\x00的字节进行转义.如果你正在使用不同于8位和UTF-8的其它字符,这些字节的值不一定全部都是表示字符

  • php mysql_real_escape_string函数用法与实例教程

    转义特殊字符在unescaped_string,考虑到当前字符的连接设置,以便它在的地方是安全的在mysql_query()它.如果二进制数据要插入,这个函数必须被使用 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false. 语法mysql_real_escape_string(string,connection) 参数 描述 string 必需.规定要转义的字符串. connection 可选.规定 MySQL 连接.

  • PHP mysqli_free_result()与mysqli_fetch_array()函数详解

    PHP mysqli_free_result()与mysqli_fetch_array()函数 mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用.在脚本结束后所有关联的内存都会被自动释放. 在我们执行完SELECT语句后,释放游标内存是一个很好的习惯. .可以通过PHP函数mysql_free_result()来实现内存的释放. //定义头文件,字符格式 header("Content-type:text/html;charset=utf-8"

  • Zend studio for eclipse中使php可以调用mysql相关函数的设置方法

    如果直接调用mysql_connect会出现:Fatal error: Call to undefined function mysql_connect() 的错误 解决办法, 找到zend studio php.ini所在的位置 我的zend studio安装在D:\Program Files\ 所以php.ini所在位置为:D:\Program Files\Zend\Zend Studio for Eclipse - 6.0.0\plugins\org.zend.php.debug.debu

  • php empty函数判断mysql表单是否为空

    值来进行判断. 很简单的,给一个例子. 方法一: 复制代码 代码如下: $sql = "select * form abc" $result = mysql_query($sql); $row = mysql_fetch_array($result); if(empty($row))//开始判断是够为空 { echo "null"; } else { echo "not null"; } 方法二: 复制代码 代码如下: $sql = "

  • php中使用session_set_save_handler()函数把session保存到MySQL数据库实例

    PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开销是很大的,然而session是要时时刻刻的使用的,大量的用户就要创建很多的session文件,这样对整个的服务器带来性能问题. 另一方面,如果服务器起采用群集的方式的话就不能保持session的一致性,所以我们就绪要采用数据库的方式来保存session,这样,不管有几台服务器同时使用,只要把他们的

  • php mysql_list_dbs()函数用法示例

    本文实例讲述了php mysql_list_dbs()函数用法.分享给大家供大家参考,具体如下: mysql_list_dbs()函数 定义:列出MySQL服务器中所有的数据库 $conn=@mysql_connect("localhost","root","admin")or die(mysql_error()); $db=mysql_list_dbs($conn); while($result=mysql_fetch_object($db))

  • PHP操作mysql函数详解,mysql和php交互函数

    1. 建立和关闭连接 1) mysql_connect() resource mysql_connect([string hostname [:port][:/path/to/socket][,string username] [,string password]]) 所有参数都是可选的 举例: @mysql_connect("localhost", "user", "password") or die("Could not conne

  • PHP操作MySQL的mysql_fetch_* 函数的常见用法教程

    mysql_fetch_* 列函数 mysql_fetch_* 列函数的主要功能是从查询返回的结果集中取得相关的查询结果,主要包括: mysql_fetch_array():从结果集中取得一行作为关联数组或索引数组,或二者兼有 mysql_fetch_row():从结果集中取得一行作为枚举数组 mysql_fetch_assoc():从结果集中取得一行作为关联数组 mysql_fetch_object():从结果集中取得一行作为对象 mysql_fetch_field():从结果集中取得字段信息

  • PHP访问MYSQL数据库封装类(附函数说明)

    复制代码 代码如下: <?php /* MYSQL 数据库访问封装类 MYSQL 数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象 访问方式,本封装类以mysql_封装 数据访问的一般流程: 1,连接数据库 mysql_connect or mysql_pconnect 2,选择数据库 mysql_select_db 3,执行SQL查询 mysql_query 4,处理返回的数据 mysql_fetch_array my

  • PHP中的MYSQL常用函数(php下操作数据库必备)

    1.mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 例: $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql

  • PHP持久连接mysql_pconnect()函数使用介绍

    mysql_pconnect在单一进程,特别是一直保持执行的监控程序,特别适用. mysql_pconnect用法和mysql_connect类似: 复制代码 代码如下: <?php $conn = mysql_pconnect($host,$user,$pwd); mysql_select_db($dbname,$conn); $result=mysql_query("select * from table_name where col_id ='test_id'", $con

  • 解析php session_set_save_handler 函数的用法(mysql)

    复制代码 代码如下: <?php /*============================文件说明======================================== @filename:     session.class.php @description:  数据库保存在线用户session,实现在线用户功能! @notice:       session过期时间一个小时,因为我们的站点是使用cookie(有效时间是1小时)登录.                 因此我们只记

随机推荐