php 调用mssql存储过程实例应用

 更新时间:2016年11月25日 16:39  点击:1757
用mssql_init语句用于初始化存储过程,而后调用mssql_bind语句指定存储过程参数,最后调用mssql_execute执行存储过程。

//连接mssql数据库教程服务器

 代码如下 复制代码
 $link = mssql_connect("127.0.0.1", "sa", "sa") or die("Can't connect sql server");
    mssql_select_db("frrc", $link) or die("Select database failure");

//初始化并加载存储过程 Bigdatabase

 代码如下 复制代码
     $stmt = mssql_init("Bigdatabase", $link) or die("initialize stored procedure failure");  
  mssql_bind($stmt, "@pagesize", $pagesize, SQLINT4);
  mssql_bind($stmt, "@start", $start, SQLINT4);
  @$ms_result = mssql_execute($stmt, false);
  mssql_query("DUMP TRANSACTION tempdb WITH NO_LOG");
  
  do{
   while( $ms_rs = mssql_fetch_object($ms_result) )
   {
    //进行数据处理
   }
  }

// msssql  存储过程 Bigdatabase如下

 代码如下 复制代码
/*
CREATE PROCEDURE Bigdatabase
@pagesize int,
@start int  
AS
declare @bsql nvarchar(4000)
set @bsql = 'select top ' + str(@pagesize) + ' username,jobid,password,useremail,zcdata,ip,name,xingbie,minzu,xueli,hunyin,age,xuexiao,zyclass,zhuanye,x_suozaidi,x_suozaidi1,huji,huji1,shengao,byear,birthyear,birthmonth,birthday,dianhua,qq,gerenzhuye,selectedjob1,selectedjob2,selectedjob3,s_PWL1,s_PWL2,s_PWL3,daiyuyaoqiu,Negotiable,provideHouseNeeded,availOpts,availNotice,llcs,CONVERT(varchar(100),dlsj, 25) as dlsj,xgsj,dlcs,jsjshuiping,language_one,l_OneAbility,language_two,l_twoAbility,mandarinLevel,skillkey,jingyan,photopb,photo,phototre,mbsys,codetype,code,shouji,posts,address,jobtype,convert(varchar(8000),pingjia) as pingjia ,convert(varchar(8000),jinengzhuanchang) as jinengzhuanchang ,convert(varchar(8000),fazhanfangxiang) as fazhanfangxiang,convert(varchar(8000),other) as other from person where id not in(select top ' + str(@start) + ' id from person   order by id asc)   order by id asc '
execute sp_executesql @bsql
GO

注:必须把text转换成varchar来处理,否则会出问题

本站原创文章转载注明来源于www.111cn.net 中国WEB第一站

转义特殊字符在unescaped_string,考虑到当前字符的连接设置,以便它在的地方是安全的在mysql_query()它。如果二进制数据要插入,这个函数必须被使用。

mysql教程_real_escape_string - 转义特殊字符的SQL语句中使用字符串

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

 

mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,其中prepends反斜杠以下字符: x00 ñ ṛ,,',“和但X1a。

这个函数必须始终(除了少数例外)被用来制作发送之前查询到MySQL数据的安全。

unescaped_string
该字符串进行转义。

link_identifier
MySQL的连接。如果没有指定连接标识符,最后一个环节开幕mysql_connect()函数假设。如果没有这样的链接被发现,它会尝试创建一个犹如mysql_connect()是不带参数调用。如果没有找到或建立连接,一会生成一条E_WARNING级别的错误。

实例一

<?php教程
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

实例二

<?php
// Query database to check if there are any matching users
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// We didn't check $_POST['password'], it could be anything the user wanted! For example:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// This means the query sent to MySQL would be:
echo $query;
?>
查询发送到MySQL:

选择*从用户的WHERE用户='艾丹'和password = ''或''=''
这将允许任何人登录没有有效的密码。

感觉php与mysql mssql数据库处理函数上只是前缀不同了,下面来看实例就知道了。

 $link = mssql_connect("localhost", "sa", "sa") or die("不能联连上mssql 服务器");
    mssql_select_db("test", $link) or die("数据库连接失败");

 
 //创建mssql查询语句
 

 代码如下 复制代码
 $ms_sql = "select * from works where username ='www.111cn.net'";
 $mss_rs = mssql_query( $ms_sql );
 
 if( mssql_num_rows( $mss_rs ) )
 {  
  while( $mss_rs = mssql_fetch_object( $mss_rs ))
  {
   echo "输出值...";
  }
 }
 else
 {
  echo '记录不存在';
 }


 
 /*
 
 注明:
 mssql_query 执行查询
 mssql_num_rows 统计记录条数
 mssql_fetch_object 把数据保存到一个对象
 mssql_select_db 选择数据库
 mssql_connect 数据库连接
 本文章原创于www.111cn.net转载注明来源

/*
 * Created on 2010-4-25
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclips教程e - PHP - Code Templates
 */
 $conn=mysql_connect('localhost','root','');
 mysql_select_db('member',$conn);


 $sql="select * from user_list";
 $query=mysql_query($sql);
 while($row=mysql_fetch_array($query))
 {
?>
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<tr bgcolor="#eff3ff">
  <td>id:<?=$row[uid]?> 用户:<?=$row[username] ?></td>
  </tr>
  <tr bgColor="#ffffff">
  <td>密码:<?=$row[password]?></td>
  </tr>
<a href="del.php?id=<?=$row[uid]?>">删除</a>
 <? }?>
</table>

数据库结构,把此代码复制到phpmyadmin运行


SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- 数据库: `member`
--

-- --------------------------------------------------------

--
-- 表的结构 `user_list`
--

CREATE TABLE `user_list` (
  `uid` int(11) NOT NULL auto_increment,
  `m_id` varchar(5) NOT NULL,
  `username` varchar(25) NOT NULL,
  `password` varchar(64) NOT NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=11 ;

--
-- 导出表中的数据 `user_list`
--

INSERT INTO `user_list` (`uid`, `m_id`, `username`, `password`) VALUES
(9, '1', 'admin', '75cf565ad38d0f837c43363e402b1a00'),
(10, '2', 'admin2', '75cf565ad38d0f837c43363e402b1a00');

 

现在想连接MSSQL2000,把MSSQL数据导入到MYSQL,发现链接不上MSSQL,
提示 Call to undefined function mssql_connect()

已做步骤:
1:php.ini
extension = php_mssql.dll前面分号去掉了
2:
把php_mssql.dll复制到了ext目录下,ext目录是extension_dir目录,php_mssql.dll在PHP5里没找到,是从以前的PHP4里复制过来的,不知道可有版本问题,

3:修改了吧php_mssql.dll复制到了system32目录下了,也复制到了windows目录下了

解析方法

1:php.ini
extension = php_mssql.dll前面分号去掉了
正确,必须要做
2:
把php_mssql.dll复制到了ext目录下,ext目录是extension_dir目录,php_mssql.dll在PHP5里没找到,是从以前的PHP4里复制过来的,不知道可有版本问题,
应该是可以的
3:修改了吧php_mssql.dll复制到了system32目录下了,也复制到了windows目录下了
不需要这样,做了也无妨

关键的一步没做!
将 ntwdblib.dll 置于系统的搜索路径中

将Sql Server 2000 升级至SP4, 否则php能过mssql_connect是连接不上sql server的1433端口的

[!--infotagslink--]

相关文章

  • 金额阿拉伯数字转换为中文的存储过程

    Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
  • Spring AOP 对象内部方法间的嵌套调用方式

    这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
  • PHP操作MSSQL存储过程修改用户密码

    存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • js实现调用网络摄像头及常见错误处理

    这篇文章主要介绍了js实现调用网络摄像头及常见错误处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-07
  • c#动态调用Webservice的两种方法实例

    这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
  • MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
  • c#中WebService的介绍及调用方式小结

    这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 解决Vue watch里调用方法的坑

    这篇文章主要介绍了解决Vue watch里调用方法的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • 解决vue watch数据的方法被调用了两次的问题

    这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • PHP调用MySQL存储过程并返回值实现程序

    本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
  • C#异步调用的好处和方法分享

    我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了...2020-06-25
  • C#调用python脚本的方法步骤(2种)

    这篇文章主要介绍了C#调用python脚本的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • javascript实现方法调用与方法触发小结

    这篇文章主要介绍了javascript实现方法调用与方法触发小结的相关资料,需要的朋友可以参考下...2016-03-30
  • 浅谈PHP调用Webservice思路及源码分享

    方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
  • C#调用存储过程详解(带返回值、参数输入输出等)

    这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下...2020-06-25
  • 基于C#调用c++Dll结构体数组指针的问题详解

    下面小编就为大家分享一篇基于C#调用c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • JS跨浏览器解析XML应用过程详解

    这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16