webForumDet fria alternativet

Fel i körning med php och mysql....

PHPur PHP

2 svar · 411 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Nu har jag efter mycket om och men lyckats installera både php3 och mysql på en NT-server. Jag har även installerat MyODBC och mysqlGUI.
Mysql står med i ODBC-datasources som sample-mysql, så det verkar funka. Jag har även lyckats skapa en ny tabell i mysql.
Men...när jag försöker prova php3 och mysql ihop funkar det inte. Jag har provat med "Robbans" php-kod enligt tidigare inlägg med:

---
<?php
$testdatabase = mysql_pconnect("localhost", "root", "");mysql_select_db("testdb");$SQLresult = mysql_query("SELECT * FROM testtabell");if (mysql_num_rows($SQLresult) > 0) { while ($row = mysql_fetch_row($SQLresult)) { echo "$row[0] : $row[1] : $row[2]<br>"; }}?>
---

men jag får upp ett meddelande med:

---
Fatal error: Call to unsupported or undefined function mysql_pconnect() in C:\Inetpub\wwwroot\php\script.php3 on line 2
---

Eftersom att jag är nybörjare på både php och mysql har jag ingen aning om felet ligger i mysql, php, på servern i min kod osv.
Alltså, någon som vet vad jag har gjort för fel eller vad jag har missat?
Tacksam för svar...

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se

Medlem sedan jan. 20009 inlägg
#2

Jag har då aldrig behövt använd mysql_pconnect
jag har alltid använt mysql_connect och det har funkat med mysql och php3 på Win98 med Apache, är det annorlunda med NT?

Medlem sedan dec. 19992 555 inlägg
#3

Funktionen mysql_pconnect() används för att skapa en "persistent" (eller vad det blir på svenska - "envis" kanske) koppling till databasen. D.v.s. en koppling som ligger öppen hela tiden mellan olika sidor (detta för att spara tid). MEN (här kanske jag borde lagt in en anmärkning) för att detta skall fungera måste man aktivera funktionen i PHP. Tror den är avstängd som default. För att aktivera den sätter man helt enkelt alternativet mysql.allow_persistent i php3.ini till on.

Annars kan du som sagt använda mysql_connect() som "T" mycket riktigt påpekar (vilket som är att föredra beror på applikationen - anledningen till att det blev mysql_pconnect() i mitt testscript är att jag klippte och klistrade från ett annat script där jag använder "envisa" databaskopplingar därför att databasservern inte ligger på samma maskin som webservern).

Men jag tror inte det är detta som orsakar ditt felmeddelande. Låter snarare som du missat att aktivera stödet för MySQL, vilket i Windows görs genom att ladda modulen php_mysql.dll - görs genom att ta bort borkommenteringen ; i filen php3.ini så att den raden lyder:

extension=php3_mysql.dll

Skall du använda ODBC finns en motsvarande rad för det du skall avkommentera:

extension=php3_odbc.dll

Dessa DLL-filer måste även kopieras till rätt ställe om de inte redan ligger där. Står mer om det i manualen för PHP:
http://www.php.net/manual/config-apache-nt.html

(Förutsätter här att det är PHP3 du kör - skiljer sig något i PHP4 Beta)

------------------
Robban < robban@lipogram.com >

133 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)