PHP操作MSSQL預存程序修改使用者密碼

來源:互聯網
上載者:User

mssql2008 預存程序 下面可以直接遠程修改密碼。

 代碼如下 複製代碼

USE [GameUserDB]
GO
IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'[dbo].[UpdateUserInfo]') and OBJECTPROPERTY(ID, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[UpdateUserInfo]
GO
CREATE PROCEDURE [UpdateUserInfo]
 @dwUserID INT,
 @strCompellation NVARCHAR(16),
 @strQQ NVARCHAR(16),
 @strEmail NVARCHAR(32),
 @strSeatPhone NVARCHAR(32),
 @strMobilePhone NVARCHAR(16),
 @strDwellingPlace NVARCHAR(128),
 @strPostalCode NVARCHAR(8),
 @strUserNote NVARCHAR(256),
 @LogonPass char (32),
 @LogonPass2 char (32),
 @Typ NVARCHAR (50),
 @UserID INT,
 @FaceID INT
WITH ENCRYPTION AS
BEGIN
 IF @TYP='LostPass'
 BEGIN
  IF EXISTS (SELECT UserID FROM AccountsInfo WHERE UserID=@UserID And LogonPass=@LogonPass)
  BEGIN
   UPDATE [AccountsInfo]
   SET  LogonPass  = @LogonPass2 WHERE ( [UserID]  = @UserID)
   SELECT '成功資訊:修改登入密碼成功!'
  END
  ELSE
  BEGIN
   SELECT '您的原密碼輸入錯誤!'
  END
 END 
END
return 0
go

PHP操作預存程序

PHP調用預存程序修改使用者密碼,本樣本直接填寫參數,實際環境可以從外部程式提交資料進行處理。

 代碼如下 複製代碼

<?php
/* 預存程序測試 */
//error_reporting(0);

/* 預存程序: 資料庫連接
------------------------------------------------------*/
define('MSDB_HOST', '1.2.3.4');
define('MSDB_PORT', 1433);
define('MSDB_USER', 'yang');
define('MSDB_PASS', 'yangjunwei');
define('MSDB_NAME', 'GameUserDB');
$conn = mssql_connect(MSDB_HOST,MSDB_USER,MSDB_PASS) or die("SQL SERVER 資料庫連接失敗!");
mssql_select_db(MSDB_NAME);

/* 預存程序: 修改指定使用者密碼
------------------------------------------------------*/
$action_type = 'LostPass';  // 操作類型
$User_ID = 1;   //使用者ID
$User_name = 'yang';  //使用者名稱
$User_pass = md5("123456"); //原使用者密碼
$User_pass2 = md5("654321"); //新使用者密碼
$User_null = NULL;

$stmt = mssql_init("UpdateUserInfo", $conn) or die("initialize stored procedure failure");//初始化一個預存程序

mssql_bind($stmt, "@Typ", $action_type, SQLVARCHAR);
mssql_bind($stmt, "@UserID", $User_ID, SQLINT4);
mssql_bind($stmt, "@LogonPass", $User_pass, SQLCHAR);
mssql_bind($stmt, "@LogonPass2", $User_pass2, SQLCHAR);

mssql_bind($stmt, "@dwUserID", $User_null, SQLINT4, false, false);
mssql_bind($stmt, "@strCompellation", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strQQ", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strEmail", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strSeatPhone", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strMobilePhone", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strDwellingPlace", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strPostalCode", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@strUserNote", $User_null, SQLVARCHAR);
mssql_bind($stmt, "@FaceID", $User_null, SQLINT4);

/*
mssql_bind($stmt,"RETVAL",$val,SQLVARCHAR); //用於直接返回return -103此類的值。

$result = mssql_execute($stmt, true); //不能返回結果集,只能得到輸出參數
echo $val.'<br />';
echo "This user id is: ".$UserID.'<br />';
echo "This user name is: ".$Accounts.'<br />';
*/

$result = mssql_execute($stmt,false); //返回結果集
$records=mssql_fetch_array($result);
print_r($records);
mssql_next_result($result); //下一個結果集,當等於FALSE的時候下一個就是輸出參數

// MSSQL 調試
//die('MSSQL error: ' . mssql_get_last_message());
//exit;

?>

注釋:MSSQL資料表大概設計

資料庫:QPGameUserDB
資料表:AccountsInfo
資料列:UserID / LogonPass

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.