Connessione a db SQL Server

di il
21 risposte

Connessione a db SQL Server

Buongiorno,
devo fare l'accesso ad un database SQL Server per poi eseguire delle query.
E' corretto il seguente codice?

1. connessione al db:
$conn = mssql_connect ("sqlserver.example.com : 1453","username "," password");
if($conn!) die ( mssql_get_last_message ( ) "Impossibile connettersi al server di database");

2. selezione del db:
$db = mssql_select_db ( "database" );
if($db!) Die ( mssql_get_last_message ( ) "Impossibile selezionare il database");

3. interrogazione db (tutta la tbl clienti):
$query = "SELECT * FROM clienti";
$risultato = mssql_query( $ query );
if($risultato!) die (mssql_get_last_message ( ) "Impossibile interrogare il database");

4.chiusura db:
mssql_close($conn);

Grazie
Sara

21 Risposte

  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    E' corretto il seguente codice?
    Lo hai provato?

    Per dire se è corretto, dovremmo crearci una istanza di SQL Server, incollare le istruzioni, sostituire i segnaposto con i nomi e magari da noi funziona, mentre nel tuo caso no, per i motivi più disparati.

    Testa il codice e, in caso di errore, riportalo qui e spiega qual è il problema o l'effetto indesiderato che riscontri.

    Ciao!
  • Re: Connessione a db SQL Server

    Ciao,
    scusa per il ritardo nella risposta, il problema li era perchè non avevo installato wamp quindi semplicemente non mi funzionava
    Adesso ho scaricato wampserver3.2.3_x64 con Apache/2.4.46 e PHP/5.6.40

    Per la connessione a SQL Server sto utilizzando questo codice:
    
    $serverName = "SERVER\\SQLEXPRESS"; 
    $connectionInfo = array( "Database"=>"nomeDB", "UID"=>"user", "PWD"=>"password");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    e mi da il seguente errore:
    Fatal error: Call to undefined function sqlsrv_connect() in C:\wamp64\www\.... on line 14 (la 3' del codice)

    Ho installato queste dll:
    extension=php_sqlsrv_56_ts.dll
    extension=php_pdo_sqlsrv_56_ts.dll
    extension=php_sqlsrv_7_ts_x86.dll
    extension=php_pdo_sqlsrv_7_ts_x86.dll

    Le ho inserite in /bin/php/phpversione in più ho aggiornato il file php.ini ma continua a darmi errore.

    Cosa sbaglio?

    Grazie,
    Sara
  • Re: Connessione a db SQL Server

    Ari ciao,
    Il messaggio è molto chiaro non trova la funzione.

    Domanda:
    Le dll dove le hai copiate? Sempre se le hai copiate....

    Ciao
  • Re: Connessione a db SQL Server

    Ciao buongiorno!

    dato che uso php 5.6.40 le ho copiate in C:\wamp\bin\php\php5.6.40\ext.

    Da quello che ho letto su internet ho provato a scaricare la versione wamp 32 bit e ho copiato le seguenti dll nella cartella di cui sopra e nel file php.ini
    extension=php_sqlsrv_55_ts.dll
    extension=php_pdo_sqlsrv_55_ts.dll
    ;extension=php_sqlsrv_55_nts.dll
    ;extension=php_pdo_sqlsrv_55_nts.dll

    Sara
  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    Ciao buongiorno!

    dato che uso php 5.6.40 le ho copiate in C:\wamp\bin\php\php5.6.40\ext.

    Da quello che ho letto su internet ho provato a scaricare la versione wamp 32 bit e ho copiato le seguenti dll nella cartella di cui sopra e nel file php.ini
    extension=php_sqlsrv_55_ts.dll
    extension=php_pdo_sqlsrv_55_ts.dll
    ;extension=php_sqlsrv_55_nts.dll
    ;extension=php_pdo_sqlsrv_55_nts.dll

    Sara
    Ciao,
    nel php.ini è giusto. Sono in corrispondenze della voce "Dynamic Extensions".
    extension=php_sqlsrv_74_ts_x64.dll
    extension=php_pdo_sqlsrv_74_ts_x64.dll

    Io però utilizzo PHP 7.4.

    I file vanno in C:\xampp\php\ext

    Come vedi io utilizzo XAMPP.

    Questo lo hai installato: https://www.microsoft.com/en-us/download/details.aspx?id=20098

    C'è anche la guida in PHP https://www.php.net/manual/en/ref.pdo-sqlsrv.ph

    Per la connessione al DB SQL SERVER devi utilizzare questo codice:
    
    
    $hostName = "IP_SERVER"; //Utilizza l'IP del server tanto i server hanno IP statico (SPERO).
    $connectionInfo = array( 
            "UID"=>"sa", //di solito si utilizza l'utente sa 
            "PWD"=>"tua_pwd",
            "Database"=>"nome_db",
            "ReturnDatesAsStrings"=>true //Se vuoi che le query ti restituiscono stringhe
        );
        
    $connessione = sqlsrv_connect($hostName, $connectionInfo);    
    
    $Sql="SELECT * FROM TUA_TABELLA ecc ecc";
    
    $risultato = sqlsrv_query ($connessione, $Sql);
    
    echo '<table align="center" style="width:100%;"><thead><tr><th>campo_1</th><th>campo_2</th><th>campo_3</th><th>campo_4</th></tr></thead><tbody>';
    
    while($row=sqlsrv_fetch_array($risultato)){
    
    echo '<tr>';
    echo '<td>'.$row['nome_campo1'].'</td>';
    echo '<td>'.$row['nome_campo2'].'</td>';
    echo '<td>'.$row['nome_campo3'].'</td>';
    echo '<td>'.$row['nome_campo4'].'</td>';
    echo '</tr>';
    
    }
    
    echo '</tbody></table>'; 
    
    
    Ti ho anche risposto all'altro tuo post.

    Ti ho messo gli echo separati così capisci meglio. Se vuoi fare più tabelle ora usa la testa... ti ho dato un bel l'input. Ora prova da sola...

    Vedi anche come gestire gli errori di connessione, di query ecc...

    Nulla toglie di memorizzare le stringhe in variabili per poi fare un echo unico concatenando le stringhe e restituire la tabella in un solo echo.

    Ciao
  • Re: Connessione a db SQL Server

    Ciao!

    Purtroppo ho ancora problemi di connessione; ho modificato le dll cioè ho messo php_sqlsrv_56_ts al posto di quella a 55 (sempre con la versione wamp 32 e php 5.6.40) sia nel php.ini che nella cartella delle estensioni.
    
    	$serverName = "SERVER\\SQLEXPRESS"; 
    
    	$connectionInfo = array( "Database"=>"nomeDB", "UID"=>"user", "PWD"=>"password");
    	$conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    	if ($conn){  echo "connesso";}
    	else{ echo " errore connessione";}
    	
    	sqlsrv_close($conn);
     
    e questo è il risultato:

    Cattura.PNG
    Cattura.PNG


    l'errore nello specifico è :

    errore.PNG
    errore.PNG

    Cosa devo fare?

    Sara
  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    Ciao!

    Purtroppo ho ancora problemi di connessione; ho modificato le dll cioè ho messo php_sqlsrv_56_ts al posto di quella a 55 (sempre con la versione wamp 32 e php 5.6.40) sia nel php.ini che nella cartella delle estensioni.
    
    	$serverName = "SERVER\\SQLEXPRESS"; 
    
    	$connectionInfo = array( "Database"=>"nomeDB", "UID"=>"user", "PWD"=>"password");
    	$conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    	if ($conn){  echo "connesso";}
    	else{ echo " errore connessione";}
    	
    	sqlsrv_close($conn);
     
    e questo è il risultato:

    Cattura.PNG

    l'errore si riferisce alla riga sqlsrv_close($conn);

    Sara
    Per prima cosa non puoi fare un echo di un array. Ma un var_dump o print_r.

    Utilizza IP del server invece di "SERVER\\SQLEXPRESS". Per esempio: 192.168.9.201. IP del tuo server.

    Ma sei proprio alla basi.

    Dopo che hai modificato il post... l'if che hai fatto per controllare la connessione ti dice errore connessione.

    Quindi controlla i parametri di connessione dall'$serverName ai parametri di $connectionInfo.

    Basta leggere!

    Ciao
  • Re: Connessione a db SQL Server

    cali ha scritto:


    Ma sei proprio alla basi.
    Si nota?
    Ho iniziato php da pochissimo solo perchè mi è stato richiesto a lavoro. Non ho assolutamente nessuna competenza in materia, anni fa alle superiori ho studiato html e css, php lo abbiamo praticamente evitato.
    Vado avanti un problema alla volta, se qualcosa non funziona cerco di scoprire il problema però non sono proprio portata per la programmazione quindi mi blocco abbastanza facilmente.

    cali ha scritto:


    Utilizza IP del server invece di "SERVER\\SQLEXPRESS". Per esempio: 192.168.9.201. IP del tuo server.
    quindi il mio $serverName = "SERVER\\SQLEXPRESS"; si trasformerà in $serverName = "ip" ?

    Sara
  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    cali ha scritto:


    Ma sei proprio alla basi.
    Si nota?
    Ho iniziato php da pochissimo solo perchè mi è stato richiesto a lavoro. Non ho assolutamente nessuna competenza in materia, anni fa alle superiori ho studiato html e css, php lo abbiamo praticamente evitato.
    Vado avanti un problema alla volta, se qualcosa non funziona cerco di scoprire il problema però non sono proprio portata per la programmazione quindi mi blocco abbastanza facilmente.

    cali ha scritto:


    Utilizza IP del server invece di "SERVER\\SQLEXPRESS". Per esempio: 192.168.9.201. IP del tuo server
    quindi il mio $serverName = "SERVER\\SQLEXPRESS"; si trasformerà in $serverName = "ip" ?

    Sara
    Si nota si! Ad anni luce di distanza!
    Al primo post che avevi scritto l'ho capito.

    Spero che questo che stai facendo non dei implementarlo in linux... C'è proprio da ridere se dovresti portare tutto in linux! Online ci sono delle guide fatte molto bene!
    Senza offese... Ci sono andato a sbattere anche io anni fa!

    Devi impostare l'IP! l'IP che scrivo è di esempio!
    
    $serverName = 192.168.99.250;
    
    Io scherzo... non te la prendere!

    Ciao
  • Re: Connessione a db SQL Server

    cali ha scritto:


    Si nota si! Ad anni luce di distanza!
    Al primo post che avevi scritto l'ho capito.

    Spero che questo che stai facendo non dei implementarlo in linux... C'è proprio da ridere se dovresti portare tutto in linux! Online ci sono delle guide fatte molto bene!
    Senza offese... Ci sono andato a sbattere anche io anni fa!

    Io scherzo... non te la prendere!
    Ahahaha non ti proccupare non me la prendo per niente, lo so che non ce la posso fare io con queste cose. Anzi grazie ancora per pazienza e i suggerimenti!

    Non devo implementarlo in linux tranquillo nel caso so a chi chiedere

    Quindi quando vado a dichiarare la variabile $serverName = xxx.xxx.xxx.xxx; inserisco il mio IP senza virgolette?
    Per la connessione $conn = sqlsrv_connect( $serverName, $connectionInfo); come serverName basta l'IP?

    Sara
  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    cali ha scritto:


    Si nota si! Ad anni luce di distanza!
    Al primo post che avevi scritto l'ho capito.

    Spero che questo che stai facendo non dei implementarlo in linux... C'è proprio da ridere se dovresti portare tutto in linux! Online ci sono delle guide fatte molto bene!
    Senza offese... Ci sono andato a sbattere anche io anni fa!

    Io scherzo... non te la prendere!
    Ahahaha non ti proccupare non me la prendo per niente, lo so che non ce la posso fare io con queste cose. Anzi grazie ancora per pazienza e i suggerimenti!

    Non devo implementarlo in linux tranquillo nel caso so a chi chiedere

    Quindi quando vado a dichiarare la variabile $serverName = xxx.xxx.xxx.xxx; inserisco il mio IP senza virgolette?
    Per la connessione $conn = sqlsrv_connect( $serverName, $connectionInfo); come serverName basta l'IP?

    Sara
    L'ip è con virgolette. Errore mio... sorry!
    
    $serverName = "xxx.xxx.xxx.xxx";
    
    Se ti dovesse servire un help... non c'è problema!

    Mi chiamo Daniel!

    Ciao!
  • Re: Connessione a db SQL Server

    cali ha scritto:


    L'ip è con virgolette. Errore mio... sorry!

    Se ti dovesse servire un help... non c'è problema!

    Mi chiamo Daniel!
    Ciao Daniel!

    Grazie!

    Sara
  • Re: Connessione a db SQL Server

    Di nulla!

    Fammi sapere se è tutto andato bene!

    Ciao
  • Re: Connessione a db SQL Server

    sdc98 ha scritto:


    quindi il mio $serverName = "SERVER\\SQLEXPRESS"; si trasformerà in $serverName = "ip" ?
    scusate se mi intrometto,
    ma se metti solo l'IP mi risulta che si intenda l'istanza di default di SqlServer;

    se tu, come sembra, hai installato un'istanza denominata SQLEXPRES
    allora penso dovresti scrivere <ip>\\SQLEXPRESS

    HTH
Devi accedere o registrarti per scrivere nel forum
21 risposte