Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-10-2006, 09:59   #1
El GianGio
Junior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 12
Php + ADODB + Linux + MS SQLServer

Salve a tutti, ho installato sulla mia macchina linux (distro Ubuntu) Apache2 + Php5. Ora devo connettermi ad un db MS SQLServer e per farlo ho pensato di usare le librerie ADODB ma la pagina php che ho fatto non sembra funzionare. Qualcuno sa il perchè? Il codice che effettua la connect e la query è il seguente

Codice:
<?php

// libreria da includere per la connessione con il database
include('../adodb/adodb.inc.php');

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

$conn = ADONewConnection('odbc_mssql');
$dsn = "Driver={SQL Server};Server=$server;Database=$db;";
$conn -> Connect($dsn, $username, $password);
if (!$conn) die("Connection failed");

$rsAule = $conn -> Execute($qryAule);

if (!$rsAule) {
	echo $conn -> ErrorMsg();
	die("<br />Unable to execute the query");
}

$rsAule -> MoveFirst();
?>
mentre l'errore che mi ritorna è il seguente

Codice:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /var/www/adodb/drivers/adodb-odbc.inc.php on line 60
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
Unable to execute the query
Da ciò che mi risponde mi sembra di capire che la connessione al db riesce a farla (dopotutto è un warning) ma poi si blocca sulla query. Quello che non riesco a capire è perchè se metto le stesse pagine php su una macchina windows funzionino correttamente.

Vi ringrazio anticipatamente per l'aiuto .

El GianGio
El GianGio è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2006, 18:03   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mmmmhmhmhhh...come fa a funzionare ADO da Linux ? Dove hai le librerie ?!!?

Leggi qui come si fa a connettersi a MS SQL da Linux: http://it.php.net/manual/it/ref.mssql.php

Ultima modifica di cionci : 16-10-2006 alle 07:40.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2006, 18:16   #3
El GianGio
Junior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 12
Le librerie le importo tramite il comando

Codice:
include('../adodb/adodb.inc.php');
e si trovano nella cartella superiore a quella che contiene le mie pagine php. Inoltre adodb è una libreria opensource realizzata per PHP e Phyton per consentire di astrarsi dal db (http://adodb.sourceforge.net/).
Comunque ora mi leggerò il link che mi hai dato per vedere se riesco a risolvere qualcosa .

Grazie
El GianGio è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2006, 10:38   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Bello dare un nome registrato ad una libreria open
ADODB è l'oggetto di Microsoft per conenttersi ai database...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2006, 10:54   #5
Ducati 998
Senior Member
 
L'Avatar di Ducati 998
 
Iscritto dal: Feb 2003
Messaggi: 321
Guarda non conosco ADODB, però posso dirti che io ho fatto delle chiamate verso MSSQL da Linux.
Basta installare sulla macchina linux FreeTds, ed in fase di compilazione del Php abilitare le chiamate di MSSQL. Alla fine utilizzi le classiche mssql_query() etc...
__________________
Troy Bayliss: l'eroe dei 2 mondi!! W-SBK Champion e vincitore della gara MotoGP di Valencia 2006!
Ducati 998 è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2006, 16:09   #6
El GianGio
Junior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 12
Penso proprio che farò una prova con le classiche mssql_query come dici tu. Inoltre credo che freeTDS sia già correttamente installato sulla mia distro di Ubuntu perchè digitando da shell il comando "isql -v MSSql username passwd" riesco a connettermi al db e quindi fare tutte le query che desidero. Questo però da linea di comando mentre io devo farlo fare alle mie pagine php.
L'unica cosa che non so fare è compilare php abilitando le chiamate di MSSQL (sai com'è vengo dal mondo windows e mi sto avvicinando ora a linux ), sapresti darmi una dritta su come fare?
Inoltre mi stavo chiedendo, non può essere che il problema risieda proprio nella mia errata configurazione di PHP? Magari se lo compilo come dici tu, però abilitando anche qualche altro modulo come unixODBC (ammesso che esista), le mie pagine PHP dovrebbero funzionare, giusto?

El GianGio
El GianGio è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 07:47   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come è scritto al link sopra, devi compilare con l'opzione --with-mssql. Credo che questo sia un parametro che devi dare al file ./configure che trovi nella distro del sorgente di php...
Quindi:

./configure --with-mssql (=DIR lo devi mettere se non ti funziona)
make
make install
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 10:17   #8
Ducati 998
Senior Member
 
L'Avatar di Ducati 998
 
Iscritto dal: Feb 2003
Messaggi: 321
Quote:
Originariamente inviato da cionci
Come è scritto al link sopra, devi compilare con l'opzione --with-mssql. Credo che questo sia un parametro che devi dare al file ./configure che trovi nella distro del sorgente di php...
Quindi:

./configure --with-mssql (=DIR lo devi mettere se non ti funziona)
make
make install
La DIR dovrebbe puntare alla directory dove hai installato le librerie che ti permettono di interpretare correttamente il resource di ritorno ad una query di MSSQL.
Nella pratica io faccio così:

Prendo FreeTds e lo installo in questa maniera, ovviamente mettendomi all'interno della directory dove ho scompattato i sorgenti:
./configure --prefix=/usr/local/freetds --with-tdsver=8.0
make
make install
Nella configurazione di freetds ho messo tdsver=8.0 perché mi aggancio a MSSQL Server 2000, se hai versioni più vecchie o altre versioni devi verificare sulla documentazione di freetds. Considera che questo parametro può essere cambiato anche dopo la compilazione, basta andare a smanipolare sul file di configurazione di freetds... adesso il nome non mi sovviene ma basta guardare sul sito web.

Poi passo all'installazione e compilazione di Php, che faccio in questa maniera, ovviamente mettendomi all'interno della directory dove ho scompattato i files sorgenti, e considerando di aver installato Apache2 dentro la cartella /usr/local/apache2:
./configure --prefix=/usr/local/Php --with-apxs2=/usr/local/apache2/bin/apxs --with-mssql=/usr/local/freetds
make
make install
In questo modo setti Php per lavorare con mssql. Attento però che se ti servono altre estensioni le devi esplicitare quando esegui il comando ./configure. Per capirci, per abilitare per esempio anche mysql devi metterci --with-mysql e pure --enable-mbstring... insomma sta a te decidere quali estensioni compilare ed abilitare a php.
__________________
Troy Bayliss: l'eroe dei 2 mondi!! W-SBK Champion e vincitore della gara MotoGP di Valencia 2006!
Ducati 998 è offline   Rispondi citando il messaggio o parte di esso
Old 18-10-2006, 15:43   #9
El GianGio
Junior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 12
Per chi è interessato e ha riscontrato il mio stesso problema, volevo dire che sono riuscito a trovare la soluzione.
In pratica il problema consisteva nella linea di codice php all'interno della pagina dove indicavo il dsn:
Codice:
$dsn = "Driver={SQL Server};Server=$server;Database=$db;";
In pratica su sistemi windows questo comando funzionava alla perfezione mentre in ambiete linux no (probabilmente perchè non gli ho spiegato dove andarsi a prendere il driver del db nel file system). Infatti il driver manager (che è unixODBC) va a guardare il file odbc.ini per sapere quale dsn prendere in considerazione. Al suo interno ho messo tutte le informazioni necessarie indicando il nome con cui mi riferirò a quel dsn tra parentesi quadre, ad es:
Codice:
[DSNname1]
Driver = /pathTo/libtdsodbc.so (il percorso al file dei driver)
Server = dbserver.exmple.com (oppure l'indirizzo ip del mio server)
Database = dbname (il nome del db da interrogare)
TDS_Version = 8.0 (la versione migliore per MS SQL)
Fatto questo posso semplicemente sostituire nella riga di codice php precedente il nome che ho usato all'interno del file odbc.ini, ottengo così:
Codice:
$dsn = "DSNname1";
Da questo momento in poi le mie pagine php sono in grado di connettersi ed interrogare correttamente il db sfruttando le librerie ADOdb che mi sono importato

Spero che questo post sia di aiuto a qualcun'altro che, come me, è alle prime armi nel mondo linux e proviene dal mondo windows. Grazie a tutti per i consigli.
Ciao!
El GianGio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Prime Day anticipato, le offerte sui rob...
Microsoft: l'obbligo dell'account online...
Prime Day anticipato, i migliori Roboroc...
'Case distrutte dai razzi di Musk': il l...
Meno 50% dal picco: Bitcoin a $64.394 e ...
MOVA, guida all'acquisto dei tagliaerba ...
Come potrebbero essere le CPU Intel Rapt...
DJI Osmo 360 Combo Essenziale a 395€: 1 ...
Teste di bambola e foto finte: cos&igrav...
Haier rilancia con due TV da tenere d'oc...
Easy Anti-Cheat sul kernel Linux: Epic G...
Amazon Fire TV Stick 4K Select a 24,99€:...
Una teoria matematica cambia i datacente...
Prime Day in anticipo, giorno 1: tutte l...
Agenti IA che si coordinano tra loro: Go...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v