2010-11-19 5 views
0

Salut J'ai le script suivant qui fonctionne très bien sur IIS mais quand je mets le même script sur une machine Linux, il échoue avec l'erreur suivante. Cela ne devrait-il pas fonctionner?Déplacement du script php d'IIS vers Linux-Script échoue

Fatal error: Call to undefined function mssql_connect() in /home/thePathToTheScript/services/dhTest.php on line 10

Ligne 10 = $ dbhandle = mssql_connect (myServer $, $ myUser, $ myPass)

//start 
$myServer = "SQLB15.sqlDBCenter.com"; 
$myUser = "unc_user"; 
$myPass = "unc1234"; 
$myDB = "db_Stuff"; 

//connection to the database 
$dbhandle = mssql_connect($myServer, $myUser, $myPass) 
    or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with 
$selected = mssql_select_db($myDB, $dbhandle) 
    or die("Couldn't open database $myDB"); 

//declare the SQL statement that will query the database 
$query = "SELECT DISTINCT Name As theName"; 
$query .= "FROM tb_Names "; 
$query .= "ORDER BY Name"; 

//execute the SQL query and return records 
$result = mssql_query($query); 
//---------------------------------------------------------------- 

Les pointeurs très appréciés

Ajouté - c'est la section MSSQL du php. ini [MSSQL] ; Autoriser ou empêcher les liens persistants. mssql.allow_persistent = Le

; Nombre maximal de liens permanents. -1 signifie aucune limite. mssql.max_persistent = -1

; Nombre maximal de liens (persistant + non persistant). -1 signifie aucune limite. mssql.max_links = -1

; Gravité d'erreur minimale à afficher. mssql.min_error_severity = 10

; La gravité minimale des messages à afficher. mssql.min_message_severity = 10

; Mode de compatibilité avec les anciennes versions de PHP 3.0. mssql.compatability_mode = Off

; Connect timeout ; mssql.connect_timeout = 5

; Délai d'attente de requête ; mssql.timeout = 60

; Plage valide 0 - 2147483647. Valeur par défaut = 4096. ; mssql.textlimit = 4096

; Plage valide 0 - 2147483647. Valeur par défaut = 4096. ; mssql.textsize = 4096

; Limite le nombre d'enregistrements dans chaque lot. 0 = tous les enregistrements d'un lot. Mssql.batchsize = 0

; Spécifie comment les colonnes datetime et datetim4 sont renvoyées ; On => Renvoie les données converties aux paramètres du serveur SQL ; Éteint => Renvoie les valeurs sous la forme AAAA-MM-JJ hh: mm: ss ; mssql.datetimeconvert = On

; Utiliser l'authentification NT lors de la connexion au serveur mssql.secure_connection = Off

; Précisez le nombre maximal de processus. Valeur par défaut = 25 ; mssql.max_procs = 25

Répondre

1

Vous essayez d'utiliser l'extension mssql, qui n'est probablement pas chargée. Vous devez vérifier votre fichier php.ini et rechercher "extension = mssql.so", puis le décommenter et redémarrer Apache.

Si cette extension n'existe pas, ou si elle ne fonctionne pas (erreurs lors du redémarrage d'apache ou lors de l'exécution du script), vous devrez vérifier avec votre distribution Linux quels paquets supplémentaires avez-vous besoin et comment faire ça marche.

+0

merci, je ne peux pas sembler trouver l'extension que vous mentionnez - c'est un compte hébergé sur Dreamhost - J'ai ajouté les détails MSSQL du php.ini au poste d'origine. On dirait que ça devrait être bon. – Chin

Questions connexes