2012-06-18 20 views
0

我面對這一個問題一個存儲過程:PHP的SQL Server,請在致電參數

我犯了一個存儲過程如下:

CREATE PROCEDURE verify_user_connection 
@username nvarchar(50), 
@pass nvarchar(50) 
AS 

BEGIN 

SELECT users.username, users.pass 
FROM dbo.users 
WHERE users.username = '@username' 
AND users.pass = '@pass' 

RETURN '@username' 

END 

,並從PHP代碼我叫他這個樣子:

<?php 
    /* Handle form buttons. */ 
    if (isset($_POST['login'])) { 
    if (!empty($_POST['username']) || !empty($_POST['pass'])) { 
     $username = $_POST['username']; 
     $password = $_POST['pass']; 
     $sql = "{ CALL dbo.verify_user_connection (@username = ?, @pass = ?) }"; 
     $param = array($username, $password); 
     $result = sqlsrv_query($conn, $sql, $param); 
     $row = sqlsrv_fetch_object($result); 
     echo $row; 
     if (!$row) { 
     die(print_r(sqlsrv_errors())); 
     } 
     else { 
     echo "record found"; 
     } 
    } 
    else { 
     echo "something went wrong"; 
    } 
    } 
    ?> 

好我有點新在微軟的SQLSRV驅動程序,我知道我的語法是不準確這裏 可能有人INLIGHT我的問題,並給我解釋我在做什麼WR翁?

在此先感謝

+1

我根本不知道php,但在你的sp上,你應該刪除你的變量的''':users.username = @username AND users.pass = @pass RETURN @ username' – Lamak

回答

1

這is'nt將是多大的幫助,但對於使用SQL Server和SP的最可靠的mthod我發現是用PHP ADODB(http://adodb.sourceforge.net/#download)連接,並調用特效。

我一直在使用SQL服務器時發現內置sql服務器功能最好不過了。

如果您仍在努力,我很樂意通過電子郵件向您提供更多信息。

+0

感謝你的回答但我會盡量避免使用外部插件進行簡單操作,我相信微軟在製作驅動程序時已經考慮過SP, – FedeSc

+0

這不是驅動程序,它是PHP的功能。好的......我一直在使用SQL Server和PHP多年,這是唯一可靠的解決方案。 – Brian