Precedente :: Successivo |
Autore |
Messaggio |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 10 Set 2008 16:03 Oggetto: * Interagire con file .mdf |
|
|
Salve a tutti
Mi ritrovo a dover lavorare con un database in ambiente Sql Server 2005.
Devo modificare un software scritto in PHP (uso EasyPhp), in modo tale che si possa interfacciare con il database suddetto, cosicchè possa effettuare semplici query e operazioni di routine.
Nella mia (scarsa) esperienza in questo genere di problemi, non mi sono mai imbattuto in qualcosa di diverso dalla normale interazione con Mysql, in cui le query si effettuano con i classici comandi.
Tipico esempio:
Codice: | $conn = mysql_connect("localhost", "root") or die ("NON CONNESSO AL SERVER");
mysql_select_db("nomedb", $conn) or die ("IMPOSSIBILE ACCEDERE AL DB");
$sql = "query...'";
$res = mysql_query($sql, $conn) or die ("ERRORE: ".mysql_error()); |
Il database nomedb di solito lo si trova nella cartella www, all'interno del webserver di EasyPhp, in localhost quindi.
Il problema è che, stavolta, ho due file con estensione .mdf e .ldf, che so che sono i due file che normalmente compongono un database di Microsoft Sql Server. Ma come interagisco con questi due file?
Dove vedo lo schema delle tabelle, in modo da poter eseguire le query?
Ho sentito dire che c'è bisogno di una connection string, ma quale comando PHP accetterebbe questa stringa come parametro?
Grazie in anticipo. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 10 Set 2008 16:08 Oggetto: |
|
|
Cioè devi convertire il programam PHP da MySQL a Microsoft Sql Server 2005 ? |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 10 Set 2008 16:10 Oggetto: |
|
|
Non proprio.
Il programma deve restare in PHP, semplicemente devo interagire con il database che trovo in formato .mdf. |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 10 Set 2008 19:54 Oggetto: |
|
|
A questo link c'è la spiegazione su come attivare le estensioni per mssql; se usi sistemi tipo easyPhp credo che al massimo tu debba decommentare alcune righe nel php.ini (però è un'ipotesi perchè io php lo accoppio a mysql).
Le funzioni che poi userai nelle pagine php sono tutte nella forma "mssql_*" e guardando al volo il link che ti ho spedito penso che le principali siano "mssql_connect", "mssql_select_db", "mssql_bind", "mssql_init", "mssql_fetch_array" e poche altre. |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 10 Set 2008 21:22 Oggetto: |
|
|
Grazie mille!
Ho fatto diverse ricerche in rete stasera, e mi confermi che ero nella buona strada!  |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 10 Set 2008 22:16 Oggetto: |
|
|
Dimenticavo nell'altro post: devi installare MSSQL Server e importare il db li dentro.
Non puoi collegarti direttamente ai files. Purtroppo di più non so perchè le poche volte che ho usato questo dbms mi ci attaccavo con asp (pre .net) per poi abbandonarlo definitivamente. |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 10 Set 2008 23:06 Oggetto: |
|
|
E' un DBMS così pessimo?
Nel pc dove lavoro ho installati sia Microsoft Sql Server 2005, che Microsoft Visual Studio (2008, mi pare..).. Dovrebbero bastare, no? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 10 Set 2008 23:24 Oggetto: |
|
|
MS SQL Server non è pessimo però io preferisco MySql.
Molti potrebbero dire che è meglio uno o è meglio l'altro: io credo che entrambi siano buoni, Oracle e Postgree sono secondo me i migliori (anche se per ora non ho mai sviluppato con questi due) però MS e MY vanno più che bene.
MySql tiene su cose come alcuni servizi di yahoo e (mi pare) anche google quindi sulla bontà di questo non si discute.
MSSql funziona, ci sono mega programmani che lo usano.
Ho abbandonato asp (pre .net) perchè lui era un aborto e php era meglio.
Php contro aspx ne esce un po' azzoppato ma se con php vengono usati framework adeguati la storia cambia (vedi zend o symfony).
Altro motivo percui ho lasciato mssql è che io ho server gnu/linux e uso apachee come webserver, iis per me non esiste neppure.
Dato che il 90% di quello che scrivo che si interfaccia ad un dbms è web, capisci perchè io stia con mysql.
Saluti |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 11 Set 2008 12:32 Oggetto: |
|
|
A quanto pare la mssql_connect non va..
Mi ritrovo con il file .mdf in una partizione del disco DIVERSA da quella in cui opera l'applicativo in PHP.
Tutto questo dovrebbe essere contemplato in una connection string, ma non ho proprio idea di dove inserirla... |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 12 Set 2008 12:16 Oggetto: |
|
|
Ok ho risolto, metto a disposizione la mia soluzione.
Il mancato funzionamento edlla mssql_connect dipendeva dal fatto che il file php.ini, rintracciabile dalla schermata che appare col comando phpinfo (), ha l'estensione php_mssql commentata.
Va tolto il ; da inizio riga.
Inoltre ho dovuto aggiornare la libreria ntwdblib.dll, che si trova nwlla cartella EasyPhp/php.
Fatto ciò la libreria dei comandi mssql_* è stata riconosciuta.
A quel punto sono bastate poche righe di codice, e il tutto si è sistemato.
Codice: |
$myServer2 = "localhost";
$myUser = "root";
$myPass = "pwd";
$myDB = "db";
//mi connetto al database
$dbhandle = mssql_connect($myServer2)
or die("Couldn't connect to SQL Server on $myServer");
//seleziono il db
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
//query...
$query = "SELECT * FROM ARTICOLI where CODICE='$codice'";
//execute the SQL query and return records
$result = mssql_query($query);
//display the results
while($row = mssql_fetch_array($result))
{
$descr = $row["DESCRIZIONE"];
$prezzo_da_mod = $row["P0"];
}
//close the connection
mssql_close($dbhandle);
}
?>
|
|
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 12 Set 2008 12:45 Oggetto: |
|
|
pulvis ha scritto: | Ok ho risolto, metto a disposizione la mia soluzione. | Oh, bene, bravo.
pulvis ha scritto: | Il mancato funzionamento edlla mssql_connect dipendeva dal fatto che il file php.ini, rintracciabile dalla schermata che appare col comando phpinfo (), ha l'estensione php_mssql commentata.
Va tolto il ; da inizio riga. | Quindi in pratica si tratta di abilitare il supporto al MS SQL da parte di php?
p.s.:
Se vuoi, fai un salto in questa discussione a presentarti agli utenti del forum.
 |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 12 Set 2008 15:42 Oggetto: |
|
|
chemicalbit ha scritto: | pulvis ha scritto: | Ok ho risolto, metto a disposizione la mia soluzione. | Oh, bene, bravo.
pulvis ha scritto: | Il mancato funzionamento edlla mssql_connect dipendeva dal fatto che il file php.ini, rintracciabile dalla schermata che appare col comando phpinfo (), ha l'estensione php_mssql commentata.
Va tolto il ; da inizio riga. | Quindi in pratica si tratta di abilitare il supporto al MS SQL da parte di php? |
Esatto...
chemicalbit ha scritto: |
p.s.:
Se vuoi, fai un salto in questa discussione a presentarti agli utenti del forum.
 |
Ok.. |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 14 Set 2008 18:20 Oggetto: |
|
|
Quando avevo parlato di decommentare qualche riga nel php.ini intendevo proprio questo.
Ho visto che anche xampp disabilita il supporto ad alcune librerie che di norma vengono abilitate di default. |
|
Top |
|
 |
pulvis Mortale devoto

Registrato: 01/09/07 00:06 Messaggi: 11
|
Inviato: 15 Set 2008 23:07 Oggetto: |
|
|
Infatti ti ringrazio per il prezioso consiglio  |
|
Top |
|
 |
|