Hej!
Någon som kan hjälpa mig med hur jag anropar mina stored procedure i mssql med PHP?
Måste jag verkligen skriva en massa mssql_init och mssql_bind och så..? Eller hur gör man?!?
Jag hittade följande kod i ett tidigare inlägg här i forumet, men får det inte att fungera. Måste jag skriva något särskilt innan jag skriver det här?
<?
.....
.....
$AccountLO="myuser";
$PassowrdLO="mypass";
$result=mssql_query("strCheckUser ".$AccountLO.", ".$PasswordLO."");
//echo gettype($result);
$arr = mssql_fetch_assoc($result);
echo $arr["R"];
......
......
?>
Min kod nu:
openConn();
$result=mssql_query("spInlogg ".$aLog['anvandarnamn'].", ".$aLog['losenord']."");
$num=mssql_result($result,"anvandarnamn");
Felmeddelandet jag får:
Warning: mssql_query(): message: Could not find stored procedure 'spInlogg'. (severity 16)
/MissStorm
pimmeMedlem sedan sep. 20011 086 inlägg Har du en stored procedure som heter spInlogg då?
Jupp. Jag har en stored procedure som heter så...
/MissStorm
Jupp. Jag har en stored procedure som heter så...
/MissStorm
pimmeMedlem sedan sep. 20011 086 inlägg Okej. Efter att ha kollat i manualen (har aldrig använt php+mssql) så skulle jag vilja påstå att du måsta använda mssql_init, mssql_bind och mssql_execute för att anropa en stored procedure.
pimmeMedlem sedan sep. 20011 086 inlägg Kom att tänka på en sak. I Oracle måste man skriva execute SP, för att exekvera en stored procedure kallad SP. Det är inte något liknande i mssql?
$result=mssql_query("execute spInlogg ".$aLog['anvandarnamn'].", ".$aLog['losenord']."");
Tack för att du försöker hjälpa mig!
Har även testat:
$result=mssql_query("exec spInlogg ".$aLog['anvandarnamn'].", ".$aLog['losenord']."");
och
$result=mssql_query("execute spInlogg ".$aLog['anvandarnamn'].", ".$aLog['losenord']."");
och
$stmt=mssql_init("spInlogg", $connDb);
mssql_bind($stmt, "@anvandarnamn", &$aLog['anvandarnamn'], SQLVARCHAR, false);
mssql_bind($stmt, "@losenord", &$aLog['losenord'], SQLVARCHAR, false);
$result = mssql_execute($stmt);
Får inget att fungera! Meddelandet:"Could not find stored procedure 'spInlogg'" visas varje gång.
@ndersMedlem sedan juni 200032 969 inlägg I T-SQL behöver man inte ange execute eller exec när man ska exekvera en procedur. Dock måste strängvärden omges med apostrofer om datatypen kräver det.
Hur har du anslutit till databasservern? Har du angivit rätt databasnamn som defaultdatabas i din anslutning?
Jag ansluter så här:
$connDb = @mssql_connect($dataServer, $db_user, $db_pass) or die("Kunde inte ansluta");
$conn = @mssql_select_db($db, $connDb) or die("Kunde inte öppna database");
Har även provat utan @-tecknen...
Jag har även trippelkollat databasnamn. Och borde väl få ett fel redan när jag försöker ansluta annars..?
/MissStorm
Måste jag ansluta på ett annat sätt om jag anropar store procedures?
Nu funkar ju inget jag försöker med!!! Provade istället:
$query="SELECT * FROM tblAnvandare WHERE anvandarnamn='".$aLog['anvandarnamn']."' AND losenord='".$aLog['losenord']."'";
echo $query;
$result = mssql_query($query);
Fick då felmeddelandet:
Warning: mssql_query(): message: Invalid object name 'tblAnvandare'. (severity 16)
Vad kan vara fel?!?
/MissStorm
Äntligen löste det sig! Hade tydligen inte fått rätt rättigheter till tabellerna...
/MissStorm