PHP与MySQL教程:include/require用法及服务器端数据校验

Mason
Mason
发布时间:2026-10-13| 6人浏览过
原创

本文介绍PHP中include()与require()两个核心文件包含函数的行为差异,并通过示例展示如何利用头文件实现PHP与MySQL数据库的模块化连接。此外,详细解析如何在服务器端使用strlen()和正则表达式进行用户输入数据校验,以保障数据库写入的安全性与规范性。

PHP文件包含机制:include与require

在PHP开发中,将通用代码(如数据库连接、HTML模板页脚)提取到独立文件中是标准做法。这依赖于两个关键函数:include()和require()。虽然两者都能引入外部文件内容,但在错误处理和执行时机上存在本质区别。

第1步:理解include与require的行为差异

目的:掌握根据业务逻辑选择合适文件包含方式的基础。

说明:

  • require():无论代码执行流是否经过该语句,require加载的文件都会在脚本启动时立即被处理。如果指定的文件不存在或无法读取,PHP将产生致命错误并停止脚本运行。适用于必须存在的核心配置或连接文件。
  • include():仅在代码执行到该行时才加载文件。如果文件缺失,PHP仅发出警告(Warning),但脚本会继续执行后续代码。适用于可选资源或非核心逻辑。
复制代码代码如下:
<html>
<body>
<?php
// 尝试包含一个不存在的文件
include("emptyfile.inc");
echo "Hello World";
?>
</body>
</html>

建议对包含的文件使用 .inc 作为后缀名,以便与常规PHP文件区分。为了防止黑客通过浏览器直接访问并泄露配置文件中的敏感信息(如数据库密码),应在Web服务器配置中将.inc文件也交由PHP解析器处理,而非作为纯文本返回。

第2步:创建模块化头文件(header.inc)

目的:将数据库连接和公共HTML结构封装,提高代码复用率。

操作:创建一个名为 header.inc 的文件,内容如下:

复制代码代码如下:
<?php
// 建立MySQL连接
$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>

第3步:在主程序中调用头文件并查询数据

目的:验证模块化解耦效果,并演示从数据库获取数据渲染表格的过程。

操作:创建主PHP文件,先定义变量,再包含头部,最后执行SQL查询:

复制代码代码如下:
<?php
$title = "Hello World";
include("header.inc"); // 此时header中的标题变量可用

$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"); // 包含页脚
?>

在此过程中,注意变量作用域:在主文件中定义的 $title 在包含 header.inc 后依然可访问,这使得我们可以动态修改页面标题。

服务器端数据校验实战

当用户通过HTML表单提交数据时,必须进行服务器端校验以防止非法数据进入数据库。常见的校验需求包括字段非空、长度限制以及格式匹配。

第1步:实现非空字段校验

目的:确保用户提交的关键字段(如姓名)已填写。

操作:利用PHP的条件判断语句检查变量是否存在:

复制代码代码如下:
<?php
if ($submit) {
    // 检查$first和$last是否都存在(非空)
    if (!$first || !$last) {
        $error = "对不起,您必须填写所有的栏目!";
    } else {
        // 处理合法输入
        echo "谢谢!";
    }
}

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

符号 || 表示“或”,! 表示“非”。只有当所有必填项都有值时,才会执行后续的业务逻辑。

第2步:基于长度的字符串校验

目的:验证输入内容是否符合最小长度要求(如密码或长姓名)。

工具:使用 strlen() 函数获取字符串字符数。

复制代码代码如下:
<?php
if ($submit) {
    // 要求每个字段至少6个字符
    if (strlen($first) < 6 || strlen($last) < 6) {
        $error = "对不起,内容长度不足!";
    } else {
        echo "校验通过!";
    }
}
?>

第3步:高级正则表达式校验

对于更复杂的格式验证(如电子邮件地址需包含“@”),可使用 ereg() 函数配合正则表达式进行严格匹配。虽然正则表达式的学习曲线较陡,但它是处理复杂文本模式最强大的工具之一。

以上就是PHP include/require使用方法及基本数据校验的详细教程,更多关于PHP MySQL数据库开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。