2011-03-03 3 views
1

J'ai une application que j'ai faite avec PHP et MSSQL2000, mais maintenant je veux le connecter à une base de données MSSQL2005. Il échoue toujours et après avoir fait des recherches, on m'a dit de télécharger le ntwdblib.dll et de remplacer l'ancien dans mon répertoire PHP que j'ai fait, mais je n'arrive toujours pas à me connecter. J'ai également décommenté les extensions MSSQL dans mon fichier php.ini.Vous voulez connecter PHP5 à MS SQL SERVER 2005

S'il vous plaît, quelqu'un peut-il m'aider?

+0

Avez-vous redémarrer Apache après avoir fait la DLL et les changements php.ini? –

+0

pouvez-vous poster les codes d'erreur ou messages d'erreur aussi – KoolKabin

+0

@Jarrod oui je l'ai fait – bsanneh

Répondre

0

je vous remercie beaucoup pour votre aide. En fait, j'ai trouvé un moyen de le faire fonctionner d'abord permettez-moi de commencer par ce que j'ai par rapport aux exigences du système

MON SYSTÈME
OS: -obtenir xP SP2
PHP: - 5.3. 5
MSSQL 2005
SQL native client 2005

requis

R ecommandés: -obtenir XP SP3
PHP: - 5.2.4 ou ultérieur
MSSQL Server 2008 Native Client (sur le même ordinateur php est en cours d'exécution)
Pilote SQL Server pour PHP

après la mise à niveau de mes fenêtres au service pack 3 j'ai ensuite téléchargé et installé le client natif MSSQL Server 2008 puis installé le pilote SQL Server pour PHP 2.0 qui demande un répertoire pour enregistrer les fichiers dll. Je navigue vers le répertoire php, puis le dossier 'ext' où il a copié les fichiers dll. Puis est allé au fichier php.ini et ajouter ces deux lignes sous les extensions dynamiques.

extension = php_sqlsrv_53_ts_vc6.dll
extension = php_pdo_sqlsrv_53_ts_vc6.dll

Redémarrez ensuite mon serveur web et booommm .... je l'ai eu de travail .. a fait un test de connexion à la base de données et il était .. succesfull

Espérons que cela aidera les autres et je vous remercie tous pour votre aide apprécie vraiment .. Peace

1

http://www.php.net/manual/en/mssql.installation.php

L'extension MSSQL est activé par l'ajout d'extension = php_mssql.dll à php.ini. Pour que ces fonctions fonctionnent, vous devez compiler PHP avec --with-mssql [= DIR], où DIR est le préfixe d'installation FreeTDS. Et FreeTDS devrait être compilé en utilisant --enable-msdblib.

également

fonctions MS SQL sont des alias pour Sybase fonctions si PHP est compilé avec l'extension Sybase et MS SQL sans extension.

<Modifier>
Juste une question. Avez-vous une fonction mssql_connect? Ou la connexion échoue-t-elle? Si la connexion échoue, assurez-vous d'activer TCP/IP dans MSSQL (à l'aide de SQL Server Configuration Manager). Et j'ai aussi rappelé avoir activé Named Pipes, mais je ne suis pas sûr que ce soit nécessaire.
</Modifier >

Comme alternative vous pourriez regarder COM et ADODB.

Exemple de COM et ADODB, la connexion à SQL Server à l'aide de l'authentification Windows:

$this->m_conn = new COM("ADODB.Connection"); 
    $this->m_conn->CommandTimeout=1200; 
    $dsn="Provider=SQLNCLI;Data Source=server_name;Integrated Security=SSPI;Initial Catalog=database_name;Application Name=YourAppName - ".$user['name']; 
    $this->m_conn->Open($dsn); 
    if(!$this->m_conn) 
     throw new Exception("Could not start ADO",101); 
    $this->m_comm = new COM("ADODB.Command"); 
    $this->m_comm->ActiveConnection=$this->m_conn; 
    $this->m_comm->CommandTimeout=1200; 

Ensuite, exécutez une commande

$this->m_comm->CommandText=$sql; 
    $res=$this->m_comm->Execute(); 

extraire ensuite les données

if(($num_cols=$res->Fields->Count())>=1) 
    { 
     $return=array(); 
     while(!$res->EOF) 
     { 
      $row=array(); 
      for($i=0;$i<$num_cols;$i++) 
       $row[$res->Fields($i)->name]=$res->Fields($i)->value; 
      $res->MoveNext(); 
      $return[]=$row; 
     } 
    } 

    $res->Close(); 
    return $return; 

ne suis pas sûr accélérer sur beaucoup de demandes, mais c'est un bon moyen de le faire sans trop de bruit, et en utilisant DSN s avec lequel vous pouvez spécifier beaucoup plus que d'utiliser les paramètres de la fonction.

EDIT: Vous pouvez définir votre propre mssql_connect(), mssql_command(), etc., en utilisant ADO. C'est une solution de contournement si l'extension régulière mssql ne fonctionne pas.

0

Vous pouvez également essayer la construction dans la base de données wrapper PDO à partir de php.

Voici quelques informations sur AOP: PDO

Et voici des informations sur l'utilisation de MSSQL avec AOP MSSQL and PDO

Questions connexes