PHP+MySQL的组合是构建网站的一个常见搭配,不过如何使用PHP通过Web访问MySQL数据库呢?下面从Web数据库架构的工作原理讲起。
从Web查询数据库:Web数据库架构的工作原理
一个用户的浏览器发出一个HTTP请求,请求特定的Web页面,在该页面中出发form表单提交到php脚本文件(如:results.php)中处理
Web服务器接收到对results.php页面的请求后,检索文件,并将其传递给PHP引擎处理
PHP引擎开始解析脚本。脚本主要包括了连接数据库和执行查询的命令。PHP启动了对MySQL服务器的连接并向该服务器发送适当的查询。
MySQL服务器接收到数据库查询的请求,开始处理这个查询,并将查询结果返回给PHP引擎。
PHP引擎完成了脚本的运行后,将该HTML返回Web服务器。
Web服务器再将HTML返回给客户端浏览器,用户就可以看到响应后的结果页面。
从Web查询数据库的基本步骤
检查并过滤来自用户的数据 首先,我们将过滤用户可能在其搜索条件的起始或结束位置不小心输入的空白字符,这是用函数trim()来实现。 我们这么麻烦的检查用户输入数据的原因是防止多个接口连接数据库,因为用户从不同的界面进入,这样可能导致安全问题。
然后,当准备使用用户输入的任何数据时,也要适当的过滤一些控制字符,当用户输入数据到数据库时必须转义数据,,此时 使用盗的函数有addslashes()函数、stripslashes()函数和get_magic_qutoes_gpc()函数。addslashes()函数为了数据 库查询语句等的需要在某些字符前加上了反斜线;stripslashes()函数去掉字符串中的反斜线字符;get_magic_qutoes_gpc()函数 魔术添加转义字符 “\”,获取当前活动配置magic_quotes_runtime设置,如果运行时关闭魔术引号,返回0,否则返回1。我们也可以使用 htmispecialchars()对HTML中的特殊意义字符警醒编码,htmispecialchars()函数把一些预定义的字符转换为 HTML 实体 【预定义的字符是:& (和号) 成为 & " (双引号) 成为 " ' (单引号) 成为 ' < (小于) 成为 < > (大于) 成为 >】
建立一个到适当数据库的连接 PHP为连接MySQL提供了函数库mysqli(i表示改进)。
当在PHP中使用mysqli函数库是可以使用面向对象或面向过程的语法:
1、面向对象, @ $db = new mysqli('hostname','username','password','dbname');返回一个对象
2、面向过程: @ $db = mysqli_connect('hostname','username','password','dbname');返回一个资源,这个资源表示数据库的连接,而且 如果使用过程方法,必须将这个资源传递到mysqli的所有其它函数。这与处理函数非常类似
mysqli的大多数函数都有面向对象接口和过程接口,二者的差异则在于过程版本的函数名称以mysqli_开头,同时要求传入mysqli_connect()函数获得的资源句柄。 对于这个规则来说,数据可连接是一个异常,因为它是由mysqli对象的构造函数来创建的。因此尝试连接时需要进行检查,mysqli_connect_errno()函数将在出现连接 错误时返回一个错误号,如果成功,则返回0.
请注意:
当连接到数据库是,通常会议错误抑制符@作为第一含代码。这样可以巧妙的处理任何错误,也可以通过异常来处理。另外,MySQK对同时连接 数据库的连接数量有一定的限制。MySQLi参数max_connections决定了同时连接的个数,该参数和相关的Apache参数MaxClients的作用是告诉服务器拒绝新的连接请求, 从而保证系统资源不会再系统忙碌时或系统瘫痪时被请求或使用。要设置Apache中的MaxClients参数可以编辑系统中的httpd.conf文件。要为MySQLi设置max_connections参数 可以编辑文件my.conf。
选择使用的数据库: 在MySQL命令行使用 use dbname;命令;在php中可以用$db->select_db(dbname);或mysqli_select_db(db_resource,dbname)。
查询数据库 要执行数据库查询,首先应构造查询语句:$query = "select * from user";然后运行 $result = $db->query($query);或者$result = mysqli_query($db,$query); 面向对象版本将返回一个结果对象;过程版本将返回一个结果资源。无论何种方法都将结果保存在$result变量中工以后使用。如果函数运行失败将返回false。
获取查询结果 使用不同的函数以不同的方式将查询结果从结果对象或标识符中取出来,结果对象或标识符是访问查询返回行的关键。
通常我们要得到结果集中记录行的行数,并且使用mysqli_fetch_assoc()函数。
返回行数:$num_results = $result->num_rows;(行数保存在对象的num_rows成员变量中)或$num_results = mysqli_num_rows($result);
然后使用循环遍历每一行,在循环中调用 $row = $result->fectch_assoc();或者 $row = mysqli_fetch_assoc($result);返回该行的信息。 如果是对象返回行则每个关键词为一个属性名,每个值为属性中的相应的值;如果以资源返回则返回数组。
还有其他从结果标识符中获取结果的方法,例如:使用$row = $result->fecth_row($result);或者$row = mysqli_fetch_row($result);将结果取回 到一个列举数组中;也可以使用$row = $result->fecth_object();或者 $row = mysqli_fecth_object($result);江一行去回到一个对象中。
从数据库断开 先释放结果集:$result->free();或 mysqli_free_result($result);然后关闭数据库连接:$db->close()或者 mysqli_close($db); 严格的说,这并不必须,因为脚本执行完毕的时候他们将被自动关闭。
从Web查询数据库:使用Prepared语句
mysqli函数库支持prepared语句的使用。它们对于在执行大量具有不同数据的相同查询时,可以提高速度,也可以免受SQL注射风格(injection-stytle
分享到:
相关推荐
《精通PHP 4.0与MySQL架构Web数据库》是一本专为PHP初学者和进阶者设计的教程,旨在帮助读者全面掌握使用PHP 4.0版本与MySQL数据库构建高效、安全的Web应用。该书可能包含了从基础的PHP语法到复杂的数据库交互,以及...
`mysql-installer-web-community-8.0.20.0.msi` 是MySQL 8.0的Web社区版安装程序,它为用户提供了一种简便的方式来安装和配置MySQL数据库服务。下面将详细讲解MySQL 8.0的主要特点、安装过程以及与QT框架的配合使用...
将IP城市ACCESS数据库写入Mysql-将ACCESS数据库导入Mysql的范例 数据库是网上搜集的,如果有更新版的数据库请跟帖贴出地址。 一共328380条数据,按照每次写入1000个数据,大约需要30秒钟。单次数据量过大会报错。 将...
对于Web开发人员来说,理解如何将MySQL与PHP、Java、Python等后端编程语言集成也至关重要,这通常涉及使用预处理语句防止SQL注入攻击,优化查询以提高性能,以及设置合适的索引来加速数据检索。 总的来说,`mysql-...
11. **PHP库连接**:"libMySQL.php"可能是PHP的MySQL库文件,意味着MySQL-Front可能也支持与PHP环境的集成,便于Web应用的开发和管理。 12. **文档资源**:"MySQL-Front.chm"是帮助文件,通常包含了软件的详细使用...
综上所述,"mysql-web.rar"压缩包提供的资源对于构建一个基于Web的网络数据库系统至关重要,涵盖了数据库设计、数据操作、与Web应用的集成等多个层面。开发者需要深入理解SQL语法、数据库库模块的使用,以及网络...
综上所述,"PHP经典实例--访问数据库"涵盖的内容包括但不限于:DBM与SQL数据库的区别、PDO扩展的使用、连接数据库的方法、执行SQL查询和预处理语句。这个主题对于任何想要提升PHP数据库编程技能的人来说都是宝贵的...
《PHP 4.0与MySQL架构Web数据库》是一本针对初学者和中级开发者的经典教程,旨在帮助读者理解和掌握如何利用PHP 4.0和MySQL构建动态、交互式的Web数据库应用。这本书的内容涵盖了许多关键知识点,包括PHP语言基础、...
在"PHP与MySQL数据库 WEB开发教程.zip"这个压缩包中,我们可以看到三个主要的子文件: 1. "php_mysql.rar":这个文件很可能包含了PHP连接和操作MySQL数据库的基础教程或示例代码。学习者可以通过这些资源了解如何...
MySQL Connector/ODBC 是 MySQL 数据库管理系统与 ODBC(Open Database Connectivity)接口之间的桥梁,它允许 Windows 上的应用程序通过 ODBC 访问 MySQL 数据库。`mysql-connector-odbc-5.3.9-win32.msi` 文件是这...
《PHP MySQL——开发Web数据库的实用工具》这本书深入探讨了如何使用PHP和MySQL这一高效组合来构建Web数据库。PHP作为一种服务器端的脚本语言,以其开放源代码、跨平台、易于嵌入HTML以及高效的特性,成为了开发动态...
MySQL数据库是基于SQL标准的一种关系型数据库管理系统,支持数据的高效存储、查询、添加和修改。通过SQL语言,我们可以轻松创建数据表、定义数据以及进行数据操作。MySQL作为一个开源软件,其成本效益明显,能够提供...
1. **MySQL Server**:这是核心服务,提供数据库存储和查询功能。 2. **MySQL Workbench**:一个可视化数据库管理工具,用于设计、管理和维护数据库。 3. **MySQL Shell**:一个多模式的JavaScript、Python和SQL交互...
在结合PHP与MySQL进行Web开发时,本书会引导读者如何使用PHP连接MySQL数据库,执行SQL语句,以及处理查询结果。通过实例,读者可以学习到如何构建安全的用户登录系统、数据表单提交处理、文件上传下载等功能。同时,...
数据查询:MySQL 支持 SQL 语言,可以高效地执行复杂的查询操作,帮助开发者根据需求获取所需的数据。 事务处理:MySQL 支持事务处理,确保数据的一致性和完整性,尤其是在并发环境下。 优势 易于管理:通过 ...
phpMyAdmin是一款功能强大的开源软件,它提供了一个基于Web的图形用户界面,使得用户可以方便地管理和操作MySQL数据库。通过浏览器访问phpMyAdmin,即使对数据库操作不熟悉的技术人员也能轻松进行数据管理、备份、...
同时,PHP 与 MySQL 的结合为 Web 开发提供了强大支持,而 Apache 作为常用的 Web 服务器之一,可以很好地支撑这类应用。最后,Zend Framework(Laminas Project)则为开发者提供了一个高度可扩展的应用程序框架。...
**PHP 4.0与架构Web数据库** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于Web开发,可以嵌入到HTML中使用。PHP 4.0是PHP的一个重要版本,它在2000年发布,为开发者提供了许多改进和新...
MySQL是世界上最受欢迎的开源数据库系统之一,特别是在Web开发领域,它与PHP、Java等编程语言配合得尤为紧密。本文将详细解析"mysql-5.5.15-win32.msi"这个安装包以及相关知识点。 标题中的"mysql-5.5.15-win32_...
6. **兼容性**:此版本的MySQL与多种编程语言和开发框架兼容,如PHP、Python、Java、C#等,使其成为Web开发者的选择。 7. **日志功能**:MySQL 5.5提供了通用日志(general query log)和慢查询日志(slow query ...