Hallu :3
ich bin derzeit nen bissel mit SP's am rumhantieren. Als Server verwend ich den MS SQL Server 2008.
Was ich vor hatte: Das Login via Prozedur checken die einen rückgabewert liefert den ich dann im Script weiter auswerten kann.
SQL der SP:
Mein PHP Code enthält noch die IP des Benutzers, jedoch muss ich ja erst mal das eigentliche Login an sich zum Laufen bringen bevor ich etwas loggen kann. Die Prozedur gibt mir in meinen Managment Studio für das Output Field 1 oder 0 aus, also klappt die obrige Prozedur jedoch erhalte ich in PHP immer bei nen dump int(0) und errors werden mir auch nicht zurück gegeben.
PHP Code:
Ich arbeite erst seit kruzen mit den sqlsrv_ treibern und mit Prozeduren, kA ob ich irgendwo einen gravierenden Fehler habe, aber laut Dokumentation ist das so richtig.
lg und danke im vorraus für jede hilfe / jeden tipp.
ich bin derzeit nen bissel mit SP's am rumhantieren. Als Server verwend ich den MS SQL Server 2008.
Was ich vor hatte: Das Login via Prozedur checken die einen rückgabewert liefert den ich dann im Script weiter auswerten kann.
SQL der SP:
Code:
/****** Object: StoredProcedure [dbo].[usp_login] Script Date: 04/13/2014 13:44:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_login] @role varchar(30), @password varchar(50), @ip varchar(20), @state nvarchar OUTPUT as SELECT @state = COUNT(*) FROM dbo.ROLE_TBL WHERE role = @role AND password = @password GO
PHP Code:
PHP Code:
public function chkLogin($role, $password) {
// Datenbank auf WEBSIT_DBF ändern
sqlsrv_query($this->db, "USE WEBSITE_DBF;");
// Login Prozedur setzen
$sql = "EXEC dbo.usp_login ?,?,?,?";
// SQL Parameter einbinden
$param = array(
array($role, SQLSRV_PARAM_IN),
array($password, SQLSRV_PARAM_IN),
array($_SERVER['REMOTE_ADDR'], SQLSRV_PARAM_IN),
array($output=0, SQLSRV_PARAM_OUT)
);
// SQL Prozedur ausführen
$stmnt = sqlsrv_query($this->db, $sql, $param);
// Fehler ausgeben lassen
if( $stmnt === false ) {
die( print_r( sqlsrv_errors(), true));
}
// Von der Prozedur den Output Wert zurückgeben.
return $output;
}
lg und danke im vorraus für jede hilfe / jeden tipp.