Ⅰ 在线等待 关于绩点计算器的TC源代码
你的代码错误很多,由于不知道你要实现的功能,只能暂时改掉错误,编译运行通过了,但是不保证实现你要求的功能。你参考一下吧
#include<stdio.h>
struct data
{
int score;
int credit;
};
void enter(struct data a[],int n);
float point(struct data a[],int n);
float totalpoint(struct data point[],int n);
void main()
{
int n;
struct data data1[30];
float b;
printf("Plese input the sum of the subjects(n<=30):");
scanf("%d",&n);
enter(data1,n);
point(data1,n);
b=totalpoint(data1,n);
printf("Your totalpoint is:%f",b);
}
void enter(struct data a[],int n)
{
int i;
printf("Please input the data(score,credit):");
for(i=0;i<n;i++)
{ printf("Please input %d data:",i+1);
scanf("%d %d",&a[i].score,&a[i].credit);
}
}
float point(struct data a[],int n)
{
int i;
for(i=0;i<n;i++)
{
if(a[i].score>=90)return 4;
else if(a[i].score>=85)return 3.7;
else if(a[i].score>=82)return 3.3;
else if(a[i].score>=78)return 3.0;
else if(a[i].score>=75)return 2.7;
else if(a[i].score>=72)return 2.3;
else if(a[i].score>=68)return 2.0;
else if(a[i].score>=66)return 1.7;
else if(a[i].score>=64)return 1.5;
else if(a[i].score>=60)return 1.0;
else return 0;
}
}
float totalpoint(struct data point[],int n)
{
int i;
float a,c,b;
for(i=0;i<n;i++)
{
a=point[i].score;
a=a+a;
c=point[i].credit;
c=c+c;
}
b=a/c;
return b;
}
Ⅱ 求一个有sql注入漏洞的mssql的网站源码。
攻击研究及防范措施
SQL-Based Web System Security——Structured Query Language InjectionLeak Attack Study And Defense Measure
SQL注入(SQL Injection)漏洞攻击是目前网上最流行最热门的黑客脚本攻击方法之一,那什么是SQL注入漏洞攻击呢?它是指黑客利用一些Web应用程序(如:网站、论坛、留言本、文章发布系统等)中某些存在不安全代码或SQL语句不缜密的页面,精心构造SQL语句,把非法的SQL语句指令转译到系统实际SQL语句中并执行它,以获取用户名、口令等敏感信息,从而达到控制主机服务器的攻击方法。
1. SQL注入漏洞攻击原理
1. 1 SQL注入漏洞攻击实现原理
SQL(Structured Query Language)是一种用来和数据库交互的语言文本。SQL注入的攻击原理就是攻击者通过Web应用程序利用SQL语句或字符串将非法的数据插入到服务器端数据库中,获取数据库的管理用户权限,然后将数据库管理用户权限提升至操作系统管理用户权限,控制服务器操作系统,获取重要信息及机密文件。
SQL注入漏洞攻击主要是通过借助于HDSI、NBSI和Domain等SQL注入漏洞扫描工具扫描出Web页面中存在的SQL注入漏洞,从而定位SQL注入点,通过执行非法的SQL语句或字符串达到入侵者想要的操作。下面以一段身份验证的.NET代码为例,说明一下SQL 注入攻击的实现方法。
SqlConnectionnwConn = new SqlConnection((string)ConfigurationSettings.AppSet
tings["DBconnStrings"]);
string queryStr = "SELECT userid,userpwd, username,type FROM users where userid='" + Txtusername.Text +"'";
DataSet userSet = new DataSet();
SqlDataAdapter userAdapter = newSqlDataAdapter(queryStr, nwConn);
userAdapter.Fill(userSet, "Users");
Session["UserID"] =Txtusername.Text.ToString();
Session["type"] =type.Text.ToString();
Response.Redirect("/Myweb/admin/login.aspx");
从上面的代码中可以看出,程序在与数据库建立连接得到用户数据之后,直接将username的值通过session传给login.aspx,没有进行任何的过滤和处理措施, 直接用来构造SQL 语句, 其危险系数是非常高的, 攻击者只要根据SQL 语句的编写规则就可以绕过身份验证,从而达到入侵的目的。
1. 2 SQL注入漏洞攻击分析
SQL注入可以说是一种漏洞,也可以说是一种攻击。当程序中的变量处理不当,没有对用户提交的数据类型进行校验,编写不安全的代码,构造非法的SQL语句或字符串,都可能产生这个漏洞。
例如Web系统有一个login页面,这个login页面控制着用户是否有权访问,要求用户输入一个用户名和口令,连接数据库的语句为:
“select * from users where username = 'username' andpassword = 'password'”
攻击者输入用户名为aa or 1=1口令为1234 or 1=1之类的内容。我们可以看出实际上攻击者并不知道真正的用户名、口令,该内容提交给服务器之后,服务器执行攻击者构造出的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得到的SQL命令变成:
“select * from users where username = 'aa' or 1=1 andpassword = '1234' or 1=1”;
服务器执行查询或存储过程,将用户输入的身份信息和数据库users表中真实的身份信息进行核对,由于SQL命令实际上已被修改,存在永远成立的1=1条件,因此已经不能真正验证用户身份,所以系统会错误地授权攻击者访问。
SQL 注入是通过目标服务器的80端口进行的,是正常的Web访问,防火墙不会对这种攻击发出警告或拦截。当Web服务器以普通用户的身份访问数据库时,利用SQL注入漏洞就可能进行创建、删除、修改数据库中所有数据的非法操作。而当数据库以管理用户权限的身份进行登录时,就可能控制整个数据库服务器。
SQL注入的方法很多,在以手动方式进行攻击时需要构造各种各样的SQL语句,所以一般攻击者需要丰富的经验和耐心,才能绕过检测和处理,提交语句,从而获得想要的有用信息。这个过程需要花费很多的时间,如果以这种手动方式进行SQL注入漏洞攻击,许多存在SQL注入漏洞的ASP、JSP、php、JAVA等网站就会安全很多了,不是漏洞不存在了,而是手动入侵者需要编程基础,但现在攻击者可以利用一些现成的黑客工具来辅助SQL注入漏洞攻击,加快入侵的速度,使SQL注入变得轻而易举。
由于SQL注入漏洞攻击利用的是通用的SQL语法,使得这种攻击具有广泛性。理论上说,对于所有基于SQL语言的数据库管理系统都是有效的,包括MSSQLServer、Oracle、DB2、Sybase和MySQL等。当然,各种系统自身的SQL扩展功能会有所不同,因此最终的攻击代码可能不尽相同。
1. 3 SQL注入漏洞攻击过程
(1)绕过身份验证
如一个login界面,需要输入用户名和口令,然后Post到另一个页面,进行身份验证,因此攻击者只需在用户名和口令的输入框中都输入aa or’1’=’1’的内容,那么攻击者就可以通过欺骗的验证方式而直接进入下一个页面,并拥有和正常登录用户一样的全部特权。原因是什么呢? 我们比较一下正常用户登录和攻击者登录时的两种SQL语句:
1)正常用户(如用户名为admin,口令为1234567) :
SQL= " selectfrom users where username = ’admin’and password= ’1234567’ ";
2)攻击者(用户名和口令都为aa or’1’=’1’) :
SQL= " select * from users where username='aa or’1’=’1’'and password = ' aa or’1’=’1’'";
可以看到由and连接的两个条件都被一个永远成立的1=1所代替,执行的结果为true,数据库会认为条件恒成立,会返回一个true,让攻击者以合法身份登录进入下一个页面。
(2)执行非法操作
如一个查询页面select1.asp? id=1,编程人员原本设计意图是显示id为1的查询信息,而攻击者利用程序中没有对id内容进行检查的机制,插入自己的代码。
从select1.asp中摘录一段关键代码:
SQL= " select *from photo where photoid= 'id'";
可以看到,id没有进行任何的处理,直接构成SQL语句并执行,而攻击者在知道该系统数据库中表名及字段名的情况下,利用SQL语句特性(分号是将两句SQL 语句分开的符号),直接向数据库Tuser表中添加记录:
select1.asp? id= 1;Insertinto Tuser (username,password,type) values ('hack','1234567','管理员'),然后攻击者就可以直接用hack进行登录了。通过这样的方法,攻击者还可以对系统做任何的事情,包括添加、删除、修改系统资源的操作。
(3)执行系统命令
如果Web主机使用MSSQL数据库管理系统,那么攻击者就可以用到xp_cmdshell这个扩展存储过程,xp_cmdshell是一个非常有用的扩展存储过程,用于执行系统命令,比如dir、net等,攻击者可以根据程序的不同,提交不同的语句:
execmaster.dbo.xp_cmdshell " dir ";
exec master.dbo.xp_cmdshell" net user hack 1234567 /add ";
execmaster.dbo.xp_cmdshell " net localgroup administrators hack /add ";
这样就可以向Web主机系统中成功添加了一个管理员帐户。
2. SQL注入漏洞攻击的检测方式及方法
2. 1检测方式
SQL注入漏洞攻击检测分为入侵前的检测和入侵后的检测。入侵前的检测,可以通过手工方式,也可以使用SQL注入漏洞扫描工具软件。检测的目的是为预防SQL注入漏洞攻击,而对于SQL注入漏洞攻击后的检测,主要是针对审计日志的查看,SQL注入漏洞攻击成功后,会在Web Service和数据库的审计日志中留下“痕迹”。
2. 2检测方法
(1)动态SQL检查
动态的SQL语句是一个进行数据库查询的强大的工具,但把它和用户输入混合在一起就使SQL注入成为了可能。将动态的SQL语句替换成预编译的SQL或者存储过程对大多数应用程序是可行的。预编译的SQL或者存储过程可以将用户的输入作为参数而不是命令来执行,这样就限制了入侵者的行动。当然,它不适用于存储过程中利用用户输入来生成SQL命令的情况。在这种情况下,用户输入的SQL命令仍可能得到执行,数据库仍然存在SQL注入漏洞攻击的危险。
(2)有效性校验
如果一个输入框只可能包括数字,那么要通过验证确保用户输入的都是数字。如果可以接受字母,检查是不是存在不可接受的字符,那就需要设置字符串检查功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。
(3)数据表检查
使用SQL注入漏洞攻击工具软件进行SQL注入漏洞攻击后,都会在数据库中生成一些临时表。通过查看数据库中最近新建的表的结构和内容,可以判断是否曾经发生过SQL注入漏洞攻击。
(4)审计日志检查
在Web服务器中如果启用了审计日志功能,则Web Service审计日志会记录访问者的IP地址、访问时间、访问文件等信息,SQL注入漏洞攻击往往会大量访问某一个页面文件(存在SQL注入点的动态网页),审计日志文件会急剧增加,通过查看审计日志文件的大小以及审计日志文件中的内容,可以判断是否发生过SQL注入漏洞攻击事件;另外还可以通过查看数据库审计日志,查询某个时间段是否有非法的插入、修改、删除操作。
(5)其他
SQL注入漏洞攻击成功后,入侵者往往会添加特权用户(如:administrator、root、sa等)、开放非法的远程服务以及安装木马后门程序等,可以通过查看用户帐户列表、远程服务开启情况、系统最近日期产生的一些文件等信息来判断是否发生过入侵。
3. SQL注入漏洞攻击检测防范模型及措施
3. 1 防范模型
本人通过深入的学习研究,吸取前人的经验成果,提出了一种通用的SQL注入漏洞攻击检测防范模型如图1所示,本模型中所有检测均在服务器端进行。首先是校验客户端提交数据的有效性,自动识别该数据类型是否符合程序中设定的值,如果校验未通过将禁止访问,返回重新输入数据并记录该过程;其次将输入的字符串类型与SQL注入规则库字符串类型进行比对,检测字符串类型是否合法(验证是否存在SQL注入漏洞),若不合法也将禁止访问,返回重新输入数据并记录该操作;最后检测是否超过访问权限,如果未超过访问权限,就可以正常访问页面,若超过访问权限,除禁止访问,返回重新输入数据并记录该操作外,同时发送Email给管理员,如果超过3次邮件告警管理员还未采取任何措施,那么将通过手机短信方式进行告警,直到管理员采取防范措施为止。
图1 SQL注入漏洞攻击检测防范模型
本模型的最大特点是自动将攻击信息及时地传递给管理员,方便管理员及时做出响应。
3. 2 防范措施
SQL注入漏洞攻击的防范方法有很多种,现阶段总结起来有以下方法:
(1)数据有效性校验。如果一个输入框只可能包括数字,那么要通过校验确保用户输入的都是数字。如果可以接受字母,那就要检查是不是存在不可接受的字符,最好的方法是增加字符复杂度自动验证功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。另外限制表单数据输入和查询字符串输入的长度也是一个好方法。如果用户的登录名最多只有10个字符,那么不要认可表单中输入10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。
(2)封装数据信息。对客户端提交的数据进行封装,不要将数据直接存入cookie中,方法就是在编程的代码中,插入session、if、try、else,这样可以有效地防止攻击者获取cookie中的重要信息。
(3)去除代码中的敏感信息。将在代码中存在的用户名、口令信息等敏感字段删除,替换成输入框。
如:SQL=" select from users where username = ’admin’and password= ’1234567’ "这样显然会暴露管理员的用户名、口令信息。可以将其修改成SQL= " select * from users where username='" +Txtuser.Text + "' and userpwd='" + Textpwd.Text + "'",这样就安全了很多,入侵者也是不会轻易的就获取到用户名、口令信息。
(4)替换或删除单引号。使用双引号替换掉所有用户输入的单引号,这个简单的预防措施将在很大程度上预防SQL注入漏洞攻击,单引号时常会无法约束插入数据的Value,可能给予输入者不必要的权限。用双引号替换掉单引号可以使大部分SQL注入漏洞攻击失败。
如:“select* from users where username='" + admin + "' and userpwd='" + 1234567+ "'”显然会得到与“select * from users where username='admin' and password= '1234567'”相同的结果。
(5)指定错误返回页面。攻击者有时从客户端尝试提交有害代码和攻击字符串,根据Web Service给出的错误提示信息来收集程序及服务器的信息,从而获取想得到的资料。应在Web Service中指定一个不包含任何信息的错误提示页面。
(6)限制SQL字符串连接的配置文件。使用SQL变量,因为变量不是可以执行的脚本,即在Web页面中将连接数据库的SQL字符串替换成指定的Value,然后将Web.config文件进行加密,拒绝访问。
(7)设置Web目录的访问权限。将虚拟站点的文件目录禁止游客用户(如:Guest用户等)访问,将User用户权限修改成只读权限,切勿将管理权限的用户添加到访问列表。
(8)最小服务原则。Web服务器应以最小权限进行配置,只提供Web服务,这样可以有效地阻止系统的危险命令,如ftp、cmd、vbscript等。
(9)鉴别信息加密存储。将保存在数据库users表中的用户名、口令信息以密文形式保存,也可以对users表进行加密处理,这样可以大大增加对鉴别信息访问的安全级别。
(10)用户权限分离。应尽可能的禁止或删除数据库中sa权限用户的访问,对不同的数据库划分不同的用户权限,这样不同的用户只能对授权给自己的数据库执行查询、插入、更新、删除操作,就可以防止不同用户对非授权的数据库进行访问。
4. 结束语
SQL注入漏洞攻击在网上非常普遍,许多ASP、PHP论坛和文章管理系统、下载系统以及新闻系统都存在这个漏洞。造成SQL注入漏洞攻击的主要原因是开发人员在系统开发的过程中编程不规范,没有形成良好的编程习惯,问题的解决只有依赖于规范编程。此外,也可以使用现有的SQL注入漏洞扫描器对整个网站中的关键代码进行扫描,查找网站页面中存在的SQL注入点。对于有问题的页面,可以及时删除或更新。本文通过对SQL注入漏洞攻击的方法、原理以及攻击实施过程进行了阐述和总结,并给出了一些常见的SQL注入漏洞攻击防范的方法。
Ⅲ ms-dos1.0源代码
微软的在软件方面的商业策略就是闭源(当年比尔盖兹也特别写了一篇文章批判开源软件,核心大义是:如果软件都是免费的,那么那些软件开发者的利益怎么得到保障,如果利益得不到保障,那么以后还会有谁来开发更好的软件等等之类),估计ms-dos1.0的源代码也不会公布……
Ⅳ MSTC是什么意思xjtumstc指
MSTC是Microsoft technology club的缩写,也就是微软技术俱乐部的意思,通常简称为微软俱乐部。
XJTU是Xi'an Jiaotong University的缩写,也就是西安交通大学的意思,
那么
XJTUMSTC就是指西安交通大学微软技术俱乐部或西安交通大学微软俱乐部。
它是一个全国百优的学生社团,使中国成立最早的微软俱乐部之一,具有很好的俱乐部文化和技术实力。
他的网址是:
http://www.xjtumstc.com
小强奉上
hihi
Ⅳ Win-TC的WIN-TC可用源代码举例
【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
⒈程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
int i,j,k;
printf(
);
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf(%d,%d,%d
,i,j,k);
}
getch();
}
==============================================================
【程序2】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
⒈程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf(%ld,&i);
bonus1=100000*0. 1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(bonus=%d,bonus);
getch();
}
==============================================================
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
⒈程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
⒉程序源代码:
#include math.h
#include stdio.h
#include conio.h
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{
x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf(
%ld
,i);
}
getch();
}
==============================================================
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
⒈程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
int day,month,year,sum,leap;
printf(
please input year,month,day
);
scanf(%d,%d,%d,&year,&month,&day);
switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf(data error);break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf(It is the %dth day.,sum);
getch();
}
==============================================================
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
⒈程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
int x,y,z,t;
scanf(%d%d%d,&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;} /*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;} /*交换z,y的值*/
printf(small to big: %d %d %d
,x,y,z);
getch();
}
==============================================================
【程序6】
题目:用*号输出字母C的图案。
⒈程序分析:可先用'*'号在纸上写出字母C,再分行输出。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
printf(Hello C-world!
);
printf( ****
);
printf( *
);
printf( *
);
printf( ****
);
getch();
}
==============================================================
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
⒈程序分析:字符共有256个。不同字符,图形不一样。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
char a=176,b=219;
printf(%c%c%c%c%c
,b,a,a,a,b);
printf(%c%c%c%c%c
,a,b,a,b,a);
printf(%c%c%c%c%c
,a,a,b,a,a);
printf(%c%c%c%c%c
,a,b,a,b,a);
printf(%c%c%c%c%c
,b,a,a,a,b);
getch();
}
==============================================================
【程序8】
题目:输出9*9口诀。
⒈程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
int i,j,result;
printf(
);
for (i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf(%d*%d=%-3d,i,j,result); /*-3d表示左对齐,占3位*/
}
printf(
); /*每一行后换行*/
}
getch();
}
==============================================================
【程序9】
题目:要求输出国际象棋棋盘。
⒈程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
⒉程序源代码:
#include stdio.h
#include conio.h
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf(%c%c,219,219);
else
printf( );
printf(
);
}
getch();
}
Ⅵ MS有开放.netframework源代码吧.那里可以下载
你可以用一个叫 Reflector 的反编译器来反编译这些 System.dll
之类的文件,甚至可以把它还原成工程文件,修改后编译好,还可以使用。这样不就看到源码了?
我好多算法,都是通过反编译微软的东西学来的
Ⅶ 心电图指标;HQ;77bpn p;120ms QRS;100ms QT;340ms Q TC;382ms P-R;140ms P;63 QRS;68 T;-25 RV5/SV1;3.342
您好,您的年龄和症状?没有看见心电图波形,现在的诊断结果基本属于正常范围,如有不适症状,及时随诊。希望我的回答给您带来帮助,祝您健康快乐。
Ⅷ 总是出现这个恶意网站怎么办domain:fcl.toycd.cn/a/ms.tc1.htm
你中了木马病毒,用《Ewido》扫描电脑。
Ⅸ 求php连接MSSQL数据源码份,有注释最好~~
$conn = mssql_connect('127.0.0.1','用户名','密码') or die('连接不成功'); //连接服务器
mssql_select_db('数据名',$conn) or die('数据库不存在'); //选择数据
mssql_query("sql语句");//查询数据
连接需要服务器php_mssql.dll扩展,php.ini中启用extension=php_mssql.dll (适合php5.3之前版本,php5.3或之后用SQLServerDriverForPHP驱动)
SQLServerDriver连接:
$serverName = "(local)";
$connectionInfo = array( "Database"=>"数据库名", "UID" => '用户', "PWD" => '密码');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
.....................
sqlsrv_close( $conn);
http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx
Ⅹ 为什么建议初学编程者使用TC2.0而不使用MS VC
因为很多教材还是老TC的,还有就是TC更直接些能直接编译源代码而VC必须要创建工程,如果能弄清楚VC和TC在代码上的区别,个人建议还是直接用VC的好,不但VC是主流的编程工具,同时在编辑调试等各方面都比TC强太多.