Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: php e sqlserver

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433

    php e sqlserver

    Buongiorno bimbi...

    allora dopo che mi avete aiutato a connettre il c# al mysql ora vi chiedo una mano per connettre il php al sql server

    (php+mysql lo so già utilizzare bene)


    come da manuale MS

    1) scaricare i driver 2.0 php per mssql > fatto

    2) includere il driver dentro le estensioni del php (php.ini) > fatto
    extension=php_sqlsrv_52_ts_vc6.dll

    3) creare un db sql server > fatto
    C:\Users\Nicola\Documents\Personali\prova02.mdf
    che contiene una tabella tab01 formata da ID + nome (questo db è inventato da me, che fantasia )

    4) crare la connessione

    Codice PHP:
    $serverName "(local)\sqlexpress";
    $connectionInfo = array( "Database"=>"prova02.mdf");

    /* Connect using Windows Authentication. */
    $conn sqlsrv_connect$serverName,$connectionInfo);
    if( 
    $conn === false )
    {
         echo 
    "Unable to connect.</br>";
         die( 
    print_rsqlsrv_errors(), true));

    ma l' errore è questo :
    Codice PHP:
    Unable to connect.
    Array ( [
    0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'Nicola-PC\Nicola'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'Nicola-PC\Nicola'. ) [1] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 4060 [code] => 4060 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Impossibile aprire il database "prova02.mdf" richiesto dall'account di accesso. Accesso non riuscito. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Impossibile aprire il database "prova02.mdf" richiesto dall'account di accessoAccesso non riuscito. ) [2] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'Nicola-PC\Nicola'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'Nicola-PC\Nicola'. ) [3] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 4060 [code] => 4060 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Impossibile aprire il database "prova02.mdf" richiesto dall'account di accesso. Accesso non riuscito. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Impossibile aprire il database "prova02.mdf" richiesto dall'account di accessoAccesso non riuscito. ) ) 
    allora ho provato a modificare la connessione senza la specifica del db ($connectionInfo) e funziona e ho esteso il codice aggiungendo una query
    Codice PHP:
    $serverName "(local)\sqlexpress";
    $connectionInfo = array( "Database"=>"prova02.mdf");

    /* Connect using Windows Authentication. */
    $conn sqlsrv_connect$serverName);
    if( 
    $conn === false )
    {
         echo 
    "Unable to connect.</br>";
         die( 
    print_rsqlsrv_errors(), true));
    }

    $server_info sqlsrv_server_info$conn);
    if( 
    $server_info )
    {
          foreach( 
    $server_info as $key => $value)
          {
                 echo 
    $key.": ".$value."
    "
    ;
          }
    }
    echo
    "<hr>";
    $client_info sqlsrv_client_info$conn);
    if(
    $client_info)
    {
           foreach( 
    $client_info as $key => $value)
          {
                  echo 
    $key.": ".$value."
    "
    ;
          }
    }
    $tsql "SELECT tab01.id,tab01.nome FROM prova02.tab01";

    /* Execute the query. */
    $stmt sqlsrv_query($conn$tsql);
    if( 
    $stmt === false )
    {
         echo 
    "Error in statement execution.</br>";
         die( 
    print_rsqlsrv_errors(), true));

    e il risultato è stato che mi scrive tutti i dettagli della connessione , ma di eseguire la query proprio non ne vuole sapere ... qua vi chiedo una mano

    info+ errore:
    Codice PHP:
    CurrentDatabasemaster
    SQLServerVersion
    10.00.2531
    SQLServerName
    NICOLA-PC\SQLEXPRESS
    _____________________________
    ----
    DriverDllNamesqlncli10.dll
    DriverODBCVer
    03.52
    DriverVer
    10.00.2531
    ExtensionVer
    2.0.1802.200
    Error in statement execution
    .
    Array ( [
    0] => Array ( [0] => 42S02 [SQLSTATE] => 42S02 [1] => 208 [code] => 208 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Il nome di oggetto 'prova02.tab01' non Š valido. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Il nome di oggetto 'prova02.tab01' non Š valido. ) ) 
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    perchè sql server?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    ho già una apllicazione che gira con php+mysql


    ora devo poter leggere i dati contenuti in una seconda applicazione (non creata da me) che gira in sql server

    Help!
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  4. #4
    $tsql = "SELECT tab01.id,tab01.nome FROM prova02.tab01";

    dovrebbe essere invece

    $tsql = "SELECT id,nome FROM tab01";


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    Vero, dovrebbe essere....

    ma dato che non ho specificato il DB al quale connettermi (vedi il problema della stringa di connessione sopra) ho seguito un altro esempio MS che dice di specificarlo nella query

    ora io mi connetto ma al master....quindi in poche parole:

    o riesco a specificare il db che mi interessa durante la connessione (vedi errore al primo mex)

    Codice PHP:
    $serverName "(local)sqlexpress";
    $connectionInfo = array( "Database"=>"prova02.mdf");

    /* Connect using Windows Authentication. */
    $conn sqlsrv_connect$serverName,$connectionInfo); 
    o lo specifico nella query... dal sito MS


    1. Tutte le query eseguite durante la connessione sono indirizzate al database specificato dall'attributo Database. Se si dispone delle autorizzazioni necessarie, è tuttavia possibile accedere ai dati di altri database utilizzando un nome completo. Se, ad esempio, per il database master è impostato l'attributo di connessione Database, è possibile eseguire una query Transact-SQL che accede alla tabella AdventureWorks.HumanResources.Employee tramite il nome completo.


    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  6. #6
    mmm, non specifichi l'utente nella connessione il che significa che lui prova a connettersi con l'utente corrente

    domanda: l'utente corrente ha i permessi di accesso a questo database?

    Prova a connetterti con l'utente amministratore (di default username: sa e password (credo) niente ... se non l'hai cambiata)

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    se cambio la connessione e metto:
    Codice PHP:

    $connectionInfo 
    = array( "UID"=>"sa",
                             
    "PWD"=>"",
                             
    "Database"=>"prova02");

    /* Connect using Windows Authentication. */
    $conn sqlsrv_connect$serverName,$connectionInfo); 
    ecco l' errore :
    Unable to connect.
    Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'sa'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'sa'. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'sa'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Accesso non riuscito per l'utente 'sa'. ) )

    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  8. #8
    prova ad accedere con un tool di gestione utilizzando come nome utente sa, io uso l'SQL Server Managment Studio

    vedi se da li riesci ad operare sul database su cui provavi a lavorare

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    Risolto.... ora riesco a connettermi ho fatto qualche prova ma sembrerabbe andare...
    anche con la selezione del db in
    Codice PHP:
    $serverName "(local)sqlexpress";
    $connectionInfo = array( "Database"=>"prova02.mdf");

    /* Connect using Windows Authentication. */
    $conn sqlsrv_connect$serverName,$connectionInfo); 
    volete che vi racconti la storia? bene (va un pò OT) prendetevi le

    avevo scaricato il visual studio express , il quale installa anche sql server 2008 express
    e non funziona il collegamento con php vedi il codice sopra

    ora (grazie daniele_dll ) ho scaricato il SQL Server Managment Studio che però non è compatibile con la versione installata da visual studio (dava problemi si compatibilià noti)

    quindi ho scaricato sql server 2008 R2 sp1 (o giù di lì) e come vi dicevo funziona...

    ora ho la bellezza di 2 istanza di SQL server (1 l' ho arrestata)
    il bello è che se io da Visual studio express volessi accedere ai db SQL server 2008 R2 ... non lo posso fare...posso solo farlo dall' istanza del 2008 e non vedo quelli della 2008 R2

    che casino ! a sto punto meglio che apra una discussione su SERVER e mi faccia aiutare là?

    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  10. #10
    mmm, è più una discussione da database ... prova li male che va si sposta da in asp/asp.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.