`
isiqi
  • 浏览: 16571175 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

PHP on Windows Azure 入门教学系列(2) ——利用SQL Azure做一个简单的访问计数器

阅读更多

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客

本文是PHP on Windows Azure 入门教学系列第二篇文章。请上一篇文章中,我们已经成功的在Windows Azure中运行了PHP应用。本文会讲解如何以PHP连接至SQL Azure。请读者按顺序阅读本教学系列,因为本文会用到上一篇文章中所创建的项目。

代码:

1.想让PHP代码能够连接到SQL Azure,首先我们必须为PHP加入SQL Server的驱动模块。(SQL Azure 构建于SQL Server技术之上)。从这里下载到SQL Server Driver for PHP 2.0 CTP2 - June 2010

2. 解压之后,我看到有如下文件。

驱动为phpp_sqlsrv开头的dll,php_pdo开头的dll为其对应的PDO拓展模块。52,53对应的是PHP版本,PHP5.2 和PHP5.3。nts 代表non-thread-safe,ts代表thread-safe。前一篇文章选择的是PHP5.3.2 非线程安全版本,所以我们的SQL Server驱动便是php_sqlsrv_53_nts_vc9.dll。

3. 将php_sqlsrv_53_nts_vc9.dll 拖入PHP_WebCgiRole项目内,php目录下的ext目录。

同时,找到php目录下,php.ini-develop文件,重命名为php.ini。并右击php.ini->Properties。将其Build Action 改为Content。

打开php.ini。搜索extension_dir。将对应处 改为如下:

此举告知程序在ext目录下搜寻拓展模块。

同时将extension = php_sqlsrv_53_nts_vc9.dll 添加到php.ini。如下图;

4. 再将先前的index.php的内容替换如下(参考上一篇文章

<?php

$serverName = "tcp:ServerID.database.windows.net, 1433";

$connectionOptions = array("Database" => "ExampleDB",

"UID" => "Username@ServerID",

"PWD" => "Password",

);

$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn === false)

{

die(print_r(sqlsrv_errors(), true));

}

else

{

echo “success”;

}

?>

5.参考SQL Azure 入门教学(一):SQL Azure之初体验该文,将上一步 黄框内容替换为相应信息。

6.按F5 ,调试程序。我们应该能够在浏览器看到success 字样。这表示我们的sql server 驱动已安装成功,并且能够连接至SQL Azure。

7. 接下来我们创建为数据库新建一个数据表。在原有代码下方添加如下代码:

$createTBLsql = "CREATE TABLE [dbo].[VisitCounterTbl](

[ID] [int] IDENTITY(1,1) NOT NULL,

[IPAddress] [varchar](15) NOT NULL,

[VisitTime] [datetime] NOT NULL,

CONSTRAINT [PK_VisitCounterTbl] PRIMARY KEY CLUSTERED

(

[ID] ASC

)

) ";

$createTBLstmt = sqlsrv_query($conn, $createTBLsql);

if($createTBLstmt === false)

{

die(print_r(sqlsrv_errors(), true));

}

else

{

echo "Table successfully created.";

}

执行后 ,应该能在网页看到Table successfully created消息。这样,我们便能在数据库下看到有VisitCounterTbl,它有三个字段,ID,访问者IP(IPAddress),访问时间(VisitTime)。(注意,本文的访问计数器只做演示之用)

8.将index.php代码替换为如下内容 :

<html>

<head>

<Title>Counter</Title>

</head>

<body>

<h1>Welcome! Windows Azure</h1>

<?php

$server = "tcp:ServerID.database.windows.net,1433";

$user = "Username@ServerID ";

$pass = "Password ";

$database = "ExampleDB ";

$connectionoptions = array("Database" => $database,

"UID" => $user,

"PWD" => $pass

);

$conn = sqlsrv_connect($server, $connectionoptions);

if($conn === false)

{

die(print_r(sqlsrv_errors(), true));

}

$insertSql = "INSERT INTO VisitCounterTbl (IPAddress,VisitTime) VALUES (?,GETDATE())";

$ip = $_SERVER['REMOTE_ADDR'];

$stmt = sqlsrv_query($conn, $insertSql, array(&$ip));

if($stmt === false)

{

die(print_r(sqlsrv_errors(), true));

}

else

{

$sql = "SELECT COUNT(ID) FROM VisitCounterTbl";

$stmt3 = sqlsrv_query($conn, $sql);

if($stmt3 === false)

{

die(print_r(sqlsrv_errors(), true));

}

if(sqlsrv_has_rows($stmt3))

{

$row = sqlsrv_fetch_array($stmt3);

echo "<h2>You are the $row[0](th) visitor.Your IPAddress is $ip</h2>";

}

}

?>

</body>

</html>

同样的,将上述代码的 黄框内容替换为相应信息。

当访问者每次访问时,代码每次插入一条记录,并取出所有的记录数量作为网站总访问次数。(注意,本文的访问计数器只做演示之用)

9.我们将项目部署至Windows Azure上。具体部署步骤请参看这里

之后通过网址访问,能看到如下内容:

本文参考自:http://blogs.msdn.com/b/brian_swan/archive/2010/02/12/getting-started-with-php-and-sql-azure.aspx

分享到:
评论

相关推荐

    sqlserver Manage Studio(V18.8) 数据库提示工具

    SSMS V18.8通常会支持多个SQL Server版本,包括较新的Azure SQL Database和Azure SQL Managed Instance,这使得用户可以在一个统一的环境中管理不同版本的SQL Server实例。 5. **源码软件**: SSMS虽然不是开源...

    计算机软件-编程源码-微软数据库开发梦工场简体中文版多媒体教学光盘-SQL SERVER.zip

    本压缩包文件包含的“微软数据库开发梦工场简体中文版多媒体教学光盘”为学习SQL SERVER提供了一个全面且深入的学习资源,适合初学者和有一定基础的开发者。 一、SQL Server简介 SQL Server是一种企业级的数据库...

    SQLServer2017c.rar

    SQL Server 2017c可能是该版本的一个特定构建或更新,提供了一些增强的功能和性能优化。 在SQL Server 2017中,有以下几个核心知识点值得我们深入了解: 1. **安装过程**:SQL Server 2017的安装包括多个步骤,如...

    将应用程序迁移到云的技巧整理.pdf

    例如,使用Windows Azure SDK中的诊断API,可以收集应用程序的故障转储、失败请求跟踪、Windows事件日志、IIS日志、Azure日志及性能计数器,便于监控和优化。 2. **应用程序安全性**:迁移到云并不意味着安全性的...

    SQLServer2005客户端SQLServer2005_SSMSEE.msi

    通过这个安装包,用户可以在Windows XP、Windows Server 2003等32位操作系统上安装一个轻量级的数据库管理工具,执行基本的数据库管理任务,如创建和修改数据库结构、执行SQL查询、管理用户权限等。 安装"SQLServer...

    SQL Server Management Studio 19.3

    版本19.3是该软件的一个更新,提供了对SQL Server数据库引擎、分析服务、集成服务、复制以及报告服务等组件的全面支持。以下是关于SSMS 19.3的一些核心知识点和功能详解: 1. **图形化界面**: SSMS提供了一个直观的...

    SQL Server数据库

    综上所述,SQL Server数据库是一个功能强大且全面的数据库解决方案,广泛应用于各种业务场景,无论是在本地部署还是云端运行,都能为企业提供可靠的数据支撑和服务。通过深入学习和掌握SQL Server,开发者和数据库...

    SQL Server数据库技术大全

    《SQL Server数据库技术大全》是一本全面探讨Microsoft SQL Server这一关系型数据库管理系统的权威指南。SQL Server作为企业级数据存储和处理的核心工具,其技术深度和广度都非常广阔,涵盖数据库设计、安装配置、...

    SQLServer高级开发与专业应用

    在这个主题中,我们将探讨一系列高级开发和专业应用的知识点。 1. **性能优化**:SQL Server的性能调优是关键技能之一,包括索引设计、查询优化、存储过程优化、统计信息的维护以及资源监控等。理解执行计划、使用...

    邹健的SQLserver 代码

    而邹健,作为一个在SQL Server领域有着深入研究的专业人士,他的代码作品无疑为我们提供了一个宝贵的参考资料,帮助我们理解和掌握SQL Server的精髓。 SQL Server的核心特性包括强大的数据处理能力、事务处理支持、...

    DP-300微软MCP认证

    在规划创建一个Azure SQL Database弹性池并添加20个使用vCore购买模型预配的数据库时,有三个关键指标对于正确调整弹性池大小以满足工作负载需求至关重要: A. 所有数据库的总大小:这是估算池所需的存储空间的重要...

    Microsoft SQL Server_Green_V4.0

    这个版本可能是一个优化或者特定版本的SQL Server,以"Green"命名可能暗示了其在性能优化或环保方面的特性。下面我们将深入探讨与这个版本相关的多个知识点。 1. **SQL Server的基础概念**:SQL Server是基于SQL...

    MyQQ-sqlserver.rar

    2. 缓存策略:利用SQL Server的缓存机制,将频繁访问的数据存储在内存中,降低磁盘I/O,提升响应速度。 3. 并行处理:合理设置并行度,利用多核CPU资源,加速大数据量操作。 4. 数据库维护:定期执行数据库维护...

    记录SQL server的代码sql-server-master.zip

    表是数据存储的基本单元,视图是从一个或多个表中导出的数据集合,索引可以加速查询速度,存储过程和函数则为复杂的业务逻辑提供封装。 3. **安全性与权限管理**:SQL Server提供角色、用户、登录和权限的概念来...

    SQL Server 的应用

    SQL Server Integration Services (SSIS) 是一个强大的ETL(提取、转换、加载)工具,用于数据迁移、清洗和整合。它可以处理来自不同来源的数据,为数据分析和报表提供统一的数据源。 9. 备份与恢复策略 SQL Server...

    SQL Server 2012数据库管理与开发PPT

    首先,SQL Server 2012引入了AlwaysOn可用性组,这是对先前数据库镜像功能的一个增强。这个特性允许创建多个副本来提高数据的可用性和容错性。通过在不同的故障域中配置多个副本,系统可以在主服务器发生故障时无缝...

    SQL SERVER 精华文档

    6. **视图**:视图是虚拟表,基于一个或多个基表,可以简化复杂的查询,并实现数据的安全隔离。 7. **存储过程**:存储过程是预编译的SQL语句集合,能提高性能并减少网络流量。它们可以接受参数,有返回值,甚至...

    SQLServer精华CHM

    《SQLServer精华CHM》是针对SQL Server数据库管理系统的一个精华资料集合,主要涵盖了该系统的核心概念、使用技巧和常见问题解决方法。SQL Server是Microsoft公司推出的一款强大的关系型数据库管理系统,广泛应用于...

    azure-grafana-dashboard-templates:用于Azure的Grafana仪表板模板

    Azure是微软提供的一个全面的云服务平台,提供了一系列的监控工具,其中之一就是Azure Monitor。Grafana则是一个开源的数据可视化工具,能够创建和分享实时的仪表板,展示各种数据源的指标。当这两者结合时,可以为...

    SQL Server精华

    9. **云集成**:SQL Server可与Azure无缝集成,支持Azure SQL Database(云托管的关系数据库)和SQL Server on Azure Virtual Machines(在Azure上运行的SQL Server实例)。 10. **数据仓库与大数据**:SQL Server...

Global site tag (gtag.js) - Google Analytics