[RISOLTO] Ci sono diventato pazzo poi ho capito!

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Nel preparare una procedura di inserimento dati in un database l'errore chem i viene riportato è appunto:
Fatal error: Cannot pass parameter 2 by reference in C:\WWW\conc\inserimento_valori_occorrenze.php on line 70
La riga 70 è:
PHP:
$handle->bindParam(':data', $data, PDO::PARAM_STR);
questo che segue il pezzo di codice che dovrebbe eseguire la query:
PHP:
try {
					try {
						$conn = new PDO($dsn, $user, $password);
						$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
						$conn->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
					} catch (PDOException $e) {
						echo 'Connection failed: ' . $e->getMessage();
						exit;
					}
					
					try {
						$handle = $conn->prepare('INSERTO INTO concorsi SET
							concorso=:concorso,
							data=:data, 
							estratto_1=:estratto_1,
							estratto_2=:estratto_2,
							estratto_3=:estratto_3,
							estratto_4=:estratto_4,
							estratto_5=:estratto_5,
							estratto_6=:estratto_6,
							estratto_7=:estratto_7,
							estratto_8=:estratto_8,
							estratto_9=:estratto_9,
							estratto_10=:estratto_10,
							numerone=:numerone');
							
						//	Inserimento dei dati nella tabella
						$handle->bindParam(':concorso', $input_value['concorso'], PDO::PARAM_INT);
						$handle->bindParam(':data', $data, PDO::PARAM_STR);
							$handle->bindParam(':estratto_1', $input_value['valore'][0], PDO::PARAM_INT);
							$handle->bindParam(':estratto_2', $input_value['valore'][1], PDO::PARAM_INT);
							$handle->bindParam(':estratto_3', $input_value['valore'][2], PDO::PARAM_INT);
							$handle->bindParam(':estratto_4', $input_value['valore'][3], PDO::PARAM_INT);
							$handle->bindParam(':estratto_5', $input_value['valore'][4], PDO::PARAM_INT);
							$handle->bindParam(':estratto_6', $input_value['valore'][5], PDO::PARAM_INT);
							$handle->bindParam(':estratto_7', $input_value['valore'][6], PDO::PARAM_INT);
							$handle->bindParam(':estratto_8', $input_value['valore'][7], PDO::PARAM_INT);
							$handle->bindParam(':estratto_9', $input_value['valore'][8], PDO::PARAM_INT);
							$handle->bindParam(':estratto_10', $input_value['valore'][9], PDO::PARAM_INT);
						$handle->bindParam(':numerone', 0, PDO::PARAM_INT);
						$handle->execute();
					} catch (PDOException $e) {
						echo 'Connection failed: ' . $e->getMessage();
						exit;
					}
I parametri passati arrivano dal risultato di un filtro e sono esatti (controllati tramite la classica print_r()) ma non comprendo il senso dell'errore anche perché è riferito al secondo bind non al primo che per lui va bene.
$data è la data in standard ISO8601 ed è costruita in modo autonomo, ma non penso proprio ci sia un errore nella costruzione della data che alla fine risulta a tutti gli effetti una stringa.
Poi cercando su internet ho capito, l'errore era alla fine, dove c'è la riga:
PHP:
$handle->bindParam(':numerone', 0, PDO::PARAM_INT);
ovvero quello 0 (zero) non ci andava e bisognava passare il valore con una variabile.
Va bene errore da poco, ma perché?
Per motivi miei per ora quel valore non va trasmesso e quindi è a blank, perché non posso scriverlo direttamente?
Certo potevo metterlo predefinito nel database e mi sarei risolto il problema, ma saranno affari miei se non ce l'ho messo predefinito, penso invece che debba essere possibile passare un valore in quel modo, no alla Zend hanno deciso di no.. uff.
Ad ogni buon conto il problema è un altro, ci sono diventato pazzo un'ora perché l'errore che mi veniva riportato era alla riga 70, quella segnalata sopra, mentre la riga dove era fisicamente l'errore è la 85.
Guttmans dove sei? :hammer:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ovvero quello 0 (zero) non ci andava e bisognava passare il valore con una variabile.
Va bene errore da poco, ma perché?

La "colpa" è di PDO, ha bisogno di una variabile da popolare per il binding, se gli passi il valore puro non lo capisce.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Sì d'accordo ma che c'entra con lo spostamento della posizione dell'errore?
a me va bene di dover usare una variabile dopotutto comprendo le motivazioni di questa scelta, bindParam serve proprio a popolare il binding quindi devi passare il valore per una variabile, ma perché quel casino con gli errori.
Troppo liquore al Cedro per Gutmans e Surasky?
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [RISOLTO] Cosa sono le < > in una dichiarazione di un metodo Java? Java 5
C [risolto] quante settimane ci sono in un anno PHP 9
L [RISOLTO]PDO if per "non ci sono dati" PHP 8
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4

Discussioni simili