数据库接口实验–php实现纲要–
这一次笔者将给出php实现的大体所需函数,最主要的部分已经贴上来了。之后我会给出完整的代码。
【准备知识】
【嵌入式SQL语言出现的理由】
通常DBMS支持的能直接访问数据库的是SQL语言,而SQL语言不象高级语言(例如C、C++等)具备很好的数据处理能力。通常的情况是需要将两种语言结合起来,利用SQL访问数据,而将数据传递给某种高级语言程序,处理后又利用SQL写回数据库。
这种嵌在高级语言程序中的SQL语句称为嵌入式SQL(或者称为ESQL),和以前使用的交互式SQL(或者称为ISQL)不一样,它们随着程序执行被调用,辅助程序完成数据库数据读写的功能,而高级语言程序则负责对数据库中的数据的分析处理转换等操作。

【嵌入式SQL语言的分类】
ESQL又分成两种,如果在程序执行前SQL的结构就已经确定,最多是可以在执行时传递一些数值参数,那么这种ESQL语句称为静态ESQL。
而通过ODBC、JDBC、OLEDB等访问数据库都是动态ESQL。SQL SERVER执行它们时因为无法事先确实知道是什么样的SQL语句,从而无法进行静态绑定,而这种绑定过程只能在程序执行过程中生成了确定的要执行的SQL语句时才能进行,称为动态绑定。

【php和odbc】In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.
大致意思是:有了ODBC,就不需要再去为了不同的数据库引擎去专门写代码啦!这个东西是比较统一的!

【实现步骤】
1.配置PHP
笔者之前已经安装过了WAMP,但是在启动之前发现了Apache的80端口被占用了,占用者是SQLServer的一个服务。打开services.msc,关闭这SQLServer的reporting service服务。之后WAMP启动正常。

2.编写测试代码
PHP的相关链接在这里
php.net/manual/en/book.uodbc.php
新建conn.php文件

<?php$server='127.0.0.1';$username='wtf';$password='dong6713285';$database='finals';$connstr = "Driver={SQL Server};Server=$server;Database=$database"; $connect=odbc_connect($connstr,$username,$password);?>

另外一个比较重要的函数是

<?php
$query="select * from MS";
$result=odbc_exec($connect, $query);
#将结果用一个表格打印出来
@odbc_result_all($result, "border=1");
?>

如果需要统计影响的行数

<?php
$rows=odbc_num_rows($result);
print "count: $rows";
?>

3.现在这个php已经初步拥有了执行$query的能力,但是这明显还不足够。因为这些代码是已经写入到了脚本之中的。
接下来我们来创造一个可以执行用户输入的php脚本

//html脚本主要的部分
<form action="query.php" method="get"><input type="text" name="submit_query"><input type="submit" value="submit" onclick="valid()">
</form>
<script>function submit_query(){//这里曾经出现了一些小问题 之前的写法是
//var s=$('#submit_input').value;
//其显示的值一直都是undefined。在百度上问到:
//$('#submit_input')是jQuery的写法,后面必须使用.val()var s=$('#submit_input').val();if(s==''){alert("empty input!");$('#submit_input').focus();}}
</script>
<?php//重要的php代码段,在form所提交的query.php之中include_once 'conn/conn.php';$query=$_GET['submit_input'];print "The query is : $query<br/>";//这个函数是由上面给的几个odbc函数封装的,你也可以分开来写myquery($query);
?>

【小总结】
1)将数据库和程序连接在一起,可以极大的拓展程序的功能和适用范围,同时也可以增加数据库的使用范围,使更多的工作得到更好的解决方案。因此,学习了ODBC等的数据库接口,对我们的编程能力进一步提高,有很大的好处。
2)使用ODBC有一个好处是连接池(就是缓存),可以减少连接数据库的次数。连接数据库要花费相对较多的时间,减少连接次数就等于减少了查询所花费的时间,增加了开发人员和管理人员的开发效率。
3)瑕疵:这个东西依然有一些小问题。例如:我并没有加入权限验证,等于这依然无法使用。只能在自己适配号的机器上运行。之后可以慢慢改进。

版权声明:本文为博主原创文章,转载请标明出处。

转载于:https://www.cnblogs.com/fridge/p/4861933.html

数据库接口实验--php实现--相关推荐

  1. Java Web实验程序设计——图书借阅网站的实现——图书信息

    预 习 报 告 实验题目:图书借阅网站的实现--图书信息 预习内容: Servlet的概述 Servlet 是使用Java 语言编写的运行在服务器端的程序.狭义的 Servlet 是指Java 语言实 ...

  2. 云计算实验4 面向行业背景的大数据分析与处理综合实验

    一. 实验目的 掌握分布式数据库接口Spark SQL基本操作,以及训练综合能力,包括:数据预处理.向量处理.大数据算法.预测和可视化等综合工程能力 二. 实验环境 Linux的虚拟机环境和实验指导手 ...

  3. rfid连接mysql_SL500 RFID 与数据库接口实现

    0 引言 射频识别(RFID)技术是近年来随着无线电技术和大规模集成电路的普及应用而出现的一项先进的自动识别和数据采集技术.它在国内外迅速发展,应用领域也十分广泛.射频识别技术以其特有的优势给各行各业 ...

  4. 合肥工业大学—SQL Server数据库实验四:数据库的分离和附加

    数据库的分离和附加 1. 数据库分离 2. 数据库附加 1. 数据库分离 当SQL Server服务器运行时,该服务器上所有的数据库自动处于运行状态,而运行中的数据库文件是无法进行数据库文件的拷贝的. ...

  5. 解读模拟摇杆原理及实验

    解读模拟摇杆原理及实验 Interpreting Analog Sticks 当游戏支持控制器时,玩家可能会一直使用模拟摇杆.在整个体验过程中,钉住输入处理可能会对质量产生重大影响.让来看一些核心概念 ...

  6. legend位置 pyecharts_实验|pyecharts数据可视化分析-1

    1. 实验介绍 本实验主要介绍pyecharts基本特点与属性. 1.1. 实验目的 了解pyecharts功能.特点.与安装方式. 1.2. 知识点 pyecharts特点 pyecharts图表 ...

  7. 2019春第二次课程设计实验报告

    2019春第二次课程设计实验报告 一.实验项目名称: 贪吃蛇游戏编写: 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制, 同时对小蛇数据的保存,如何实现转弯的效 ...

  8. 汇编语言程序设计 实验九

    实验内容 实验一: 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segmentd ...

  9. 20172324 2018-2019-1《程序设计与数据结构》实验2报告

    20172324 2018-2019-1<程序设计与数据结构>实验2报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 曾程 学号:20172324 实验教师:王志强 ...

  10. JAVA第二次验证设计性实验报告

    [实验任务一]:素数输出 (3)实验报告中要求包括程序设计思想.程序流程图.源代码.运行结果截图.编译错误分析等内容. 1.   实验内容 (1)计算并输出3~100之间的素数. (2)编程满足下列要 ...

最新文章

  1. finalspeed安装及使用教程
  2. 求求你别在用IF ELSE校验参数了
  3. python中map函数运行原理_Python中map函数的解释和可视化
  4. oracle查询等于外的,Oracle 查询、更新基本操作
  5. 为什么 OAuth 里除了 Access Token 之外,还需要 Refresh Token?
  6. JSP数据库连接方式总结
  7. 值得永久收藏的 C# 设计模式套路(一)
  8. Ubuntu16.04开机进入单用户模式,破解root密码
  9. 李想发布了一款怎样的智能电动车?
  10. 利用html制作通讯录_动漫制作软件哪些好用?动漫制作软件推荐
  11. CSS3的几个标签速记3
  12. visio 2013 破解工具 - KMSpico
  13. 在精简版的xp添加删除程序里面没有IIS的解决方法
  14. 市场调研报告-全球与中国商业虚拟化平台市场现状及未来发展趋势
  15. Android 联系人名字多音字的处理方法
  16. 首次使用计算机 鼠标没反应,电脑鼠标没反应是怎么回事
  17. 30多个投资理财工具,总有一款适合你
  18. 推荐一个简单好用的HTML编辑器
  19. word到处html分页,请问如何把做好的word分页导出为html格式
  20. android支持svg格式图片么,Android Studio2.0中使用SVG图片格式

热门文章

  1. SubSnoic 框架入门到提高(4)---全程记录
  2. NbPreferences使用用户首选项时要注意的问题
  3. 090717 T OOD时的接口
  4. preempt_disable宏
  5. Android 四大组件学习之Activity七
  6. Win10环境下使用VS2015编译PJProject
  7. h264编解码器知识点
  8. H264--H264解码--5
  9. SylixOS 缺页异常
  10. Android HAL(硬件抽象层)介绍以及调用