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 21-05-2018, 10:54   #1
neorob
Member
 
L'Avatar di neorob
 
Iscritto dal: Jan 2006
Città: Brescia
Messaggi: 93
[PHP/MSSQL] - Sintassi query errata

Ciao a tutti,
ho un database MSSQL dal quale devo estrapolare dei dati. Questo è il codice:

Codice:
<?php			
						$sql = 'SELECT CONCAT(RIGHT(dbo."UNITA LOCALI".PRECOD, 6), ".", dbo."UNITA LOCALI".COD) as TEST FROM dbo."UNITA LOCALI"';
							

						$result = sqlsrv_query( $conn, $sql);
						if( $result === false ) {die( print_r( sqlsrv_errors(), true));}
						while($obj = sqlsrv_fetch_object( $result))
							{
							echo "<tr><td>";
							echo $obj->TEST."</td></tr>";
							}
						sqlsrv_close($conn);
					?>
la sintassi SQL funziona benissimo con Heidi, e il programma funziona bene con un generico SELECT * FROM dbo."UNITA LOCALI" (con gli opportuni aggiustamenti sugli echo).
Con questa richiesta SQL, mi viene restituito l'errore

[code]Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102
Codice:
 => 102 [2] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Sintassi non corretta in prossimit� di ','. [message] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Sintassi non corretta in prossimit� di ','. ) )
Il vero problema credo siano gli apici e le virgolette... Ho provato di tutto ma non riesco a farlo funzionare... Avete suggerimenti?
neorob è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2018, 10:50   #2
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22143
Quote:
Originariamente inviato da neorob Guarda i messaggi
Ciao a tutti,
ho un database MSSQL dal quale devo estrapolare dei dati. Questo è il codice:

Codice:
<?php			
						$sql = 'SELECT CONCAT(RIGHT(dbo."UNITA LOCALI".PRECOD, 6), ".", dbo."UNITA LOCALI".COD) as TEST FROM dbo."UNITA LOCALI"';
							

						$result = sqlsrv_query( $conn, $sql);
						if( $result === false ) {die( print_r( sqlsrv_errors(), true));}
						while($obj = sqlsrv_fetch_object( $result))
							{
							echo "<tr><td>";
							echo $obj->TEST."</td></tr>";
							}
						sqlsrv_close($conn);
					?>
la sintassi SQL funziona benissimo con Heidi, e il programma funziona bene con un generico SELECT * FROM dbo."UNITA LOCALI" (con gli opportuni aggiustamenti sugli echo).
Con questa richiesta SQL, mi viene restituito l'errore

[code]Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102
Codice:
 => 102 [2] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Sintassi non corretta in prossimit� di ','. [message] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Sintassi non corretta in prossimit� di ','. ) )
Il vero problema credo siano gli apici e le virgolette... Ho provato di tutto ma non riesco a farlo funzionare... Avete suggerimenti?
fai una prova brutale, prova ad copiare da heidi le virgolette e copiarle nel codice php, uso raramente sql server e mai php ma con mysql e .net ho lo stesso problema (il carattere che mysql vuole per l'apice è diverso dal carattere della tastiera italiana )
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2018, 10:39   #3
iezzetto
Member
 
L'Avatar di iezzetto
 
Iscritto dal: Jan 2013
Messaggi: 92
Che versione stai utulizzando di SQL SERVER?

Una cosa che devi togliere sono le doppie virgolette.
Non sono riconosciute nella query.

lo schema (dbo) se è unico puoi evitare di inserirlo in quanto di default punta su quello.

La query dovresti provare a farla in questo modo

Codice PHP:
$sql 'SELECT CONCAT(RIGHT([UNITA LOCALI].PRECOD, 6), \'.\', [UNITA LOCALI].COD) as TEST FROM [UNITA LOCALI]'
iezzetto è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2018, 14:48   #4
neorob
Member
 
L'Avatar di neorob
 
Iscritto dal: Jan 2006
Città: Brescia
Messaggi: 93
Dopo esperimenti vari e testa rotta contro il muro per la disperazione, ho trovato la soluzione!

PREMESSA: SQL Server 11.0.6020 su MS Server2012 R2 + PHP 7.2

SOLUZIONE:
la query che avevo indicato funziona bene con Heidi. Con PHP ho risolto usando la barra prima degli apici nel comando CONCAT ( \'.\' ).
Invece, non so come mai, le " vanno bene. Però mi piace anche la soluzione delle parentesi [quadre]. rRnde più leggibile il codice.
Ora finalmente funziona!
Grazie
neorob è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2018, 12:25   #5
iezzetto
Member
 
L'Avatar di iezzetto
 
Iscritto dal: Jan 2013
Messaggi: 92
Si le parentesi evitano prarecchi problemi di lettura.

Anche se io generalmente non amo chiamare gli oggetti con gli spazi. Di solito concateno con gli underscore!

Scusami se ti chiedo.
Ma lavori sotto ambiente linux o windows?

Che driver hai usato per la connessione a SQLSERVER con php? PDO?

Ciao
iezzetto è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2018, 11:43   #6
neorob
Member
 
L'Avatar di neorob
 
Iscritto dal: Jan 2006
Città: Brescia
Messaggi: 93
Purtroppo il database no l'ho creato io, ma fa parte di un programma per la gestione dei rifiuti. Oltre che a costare uno sproposito, il programma è lento come la morte (dico solo che quando si apre una "maschera" impiega circa 2 secondi dal click.... tempi inaccettabili).
Da qui l'idea di usare php per visualizzare i dati di cui ho bisogno, senza troppi giri e perdite di tempo.

Lavoro in ambiente windows, e si, ho usato i drivers PDO per la connessione al database.
neorob è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2018, 10:19   #7
iezzetto
Member
 
L'Avatar di iezzetto
 
Iscritto dal: Jan 2013
Messaggi: 92
Quote:
Originariamente inviato da neorob Guarda i messaggi
Purtroppo il database no l'ho creato io, ma fa parte di un programma per la gestione dei rifiuti. Oltre che a costare uno sproposito, il programma è lento come la morte (dico solo che quando si apre una "maschera" impiega circa 2 secondi dal click.... tempi inaccettabili).
Da qui l'idea di usare php per visualizzare i dati di cui ho bisogno, senza troppi giri e perdite di tempo.

Lavoro in ambiente windows, e si, ho usato i drivers PDO per la connessione al database.
La maggior parte della lentezza è data dalle query fatte con i piedi (non so se le hai fatte tu! ).

MSSQL ficca tutto nella ram, e più ne ha, più se ne prende (se non è tutto ottimizzato)

Lavora molto sull'ottimizzazione delle query e utilizza l'analizzatore delle query di SQL.
Ti dà tutte le tempistiche ed è utile per ottimizzare!
iezzetto è 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...
Intel prepara 'Raptor Lake Next'? Nel 20...
Una telefonata del CEO di Amazon dietro ...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
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: 07:32.


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