webForumDet fria alternativet

Databasfunktion som inte funkar - hjälp?

PHP

4 svar · 188 visningar · startad av Mungo

Medlem sedan jan. 2000372 inlägg
Frågan#1

Jag försöker få till en funktion som jag ska kunna använda överallt för att göra en query och skicka tillbaka ett recordset (ja, jag har bara sysslat med ASP förut).

Jag gör såhär men det funkar inte:

function getRS($strSQL) {
	echo "$strSQL";
    $link = mysql_connect("localhost", "username", "password")
        or die ("Could not connect");
    mysql_select_db ("databasnamn")
        or die ("Could not select database");
    
    $result = mysql_query($strSQL)
        or die ("Query failed");
		
	$data = mysql_fetch_assoc($result);

	return $data;
    
    mysql_close($link);
	}

Eller, den där koden körs utan problem Felet uppstår när jag försöker använda den med:

$rs = getRS("SELECT username FROM users WHERE username = '" . $username . "' AND PASSWORD = '" . $password . "'")

och sen försöker göra vad jag vill med $rs, t.ex. ger följande kod:

echo mysql_num_rows($rs);

felmeddelandet:

Parse error: parse error in c:\webdocs/superkoll/login.php on line 11

Varför? Vad är det jag tänker fel? Snälla hjälp?

Medlem sedan dec. 200012 464 inlägg
#2

Parse error beror nog på att du har glömt ett ; på denna rad:

$rs = getRS("SELECT username FROM users WHERE username = '" . $username . "' AND PASSWORD = '" . $password . "'")

Ditt upplägg är lite feltänkt, du returnerar ju en array som innehåller första raden i resultatmängden.

Försöker du göra något som liknar ett client-side recordset i ASP?

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 05 nov 2001]

Medlem sedan jan. 2000372 inlägg
#3

Tack, det var ett löjligt fel jag gjort. Ska testa med ett litet semikolon.

Jo, jag vill göra nåt som liknar client-side recordset i ASP. :) har du nåt tips på hur jag gör det bättre?

Medlem sedan dec. 200012 464 inlägg
#4

Jag tror inte att PHP har någon direkt motsvarighet till ASPs client-side recordset.

Det går ju att skapa en array där varje element innehåller en array med värden som du får tillbaka från mysql_fetch_row.

Om du använder mysql_num_rows så skall argumentet till den vara det du får tillbaka från mysql_query. ($result i ditt fall).

------------------
essentitia preter non sans multiplicandum

Medlem sedan jan. 2000372 inlägg
#5

Tack.

Faktum är att det funkar bra nu. Jag har själva databaskopplingen och frågan i en funktion enl. ovan, skickar sen in en SQL-sträng till funktionen och får tillbaka resultatet i en variabel som jag kan köra mysql_fetch_assoc på och då är det väldigt nära client-side recordset från ASP vilket känns bekvämt och hemtamt...

Faktum är att jag inte tittat på PHP förrän igår, och enda anledningen till att jag nu installerat Apache, PHP och mySQL på min PC-burk är att MS är för snåla för att skicka med IIS eller PWS i Windows XP Home som jag fått istället för Pro från min datornasare. Alltså blev det plötsligt väldigt svårt att utveckla i ASP men väldigt lätt i PHP så nu "måste" jag ju lära mig det. Spännande.

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)