Errore sintassi SQL "UPDATE" in file PHP

  • Creatore Discussione Creatore Discussione Komix
  • Data di inizio Data di inizio

Komix

Nuovo Utente
18 Mar 2012
8
0
0
Salve, eccomi col secondo post, allora... ho fatto uno script che, richiama una funzione che deve eseguire una query mysql, per la precisione UPDATE, però è un pomeriggio che non fa che restituirmi appunto l'errore di sintassi, che di solito appunto mi indica che la stessa query l'ho scritta sbagliata, ho provato a modificarla in mille modi ma c'è sempre un errore nella sintassi...
così è come ho scritto la query :

PHP:
$query = "UPDATE pagine SET nome_pagina='$titolo', cont_pagina='$contenuto' WHERE id='$id'";

questa è la funzione per intero :
PHP:
function EditPage($id,$titolo,$contenuto) {
	$query = "UPDATE pagine SET nome_pagina='$titolo', cont_pagina='$contenuto' WHERE id='$id'";
	$ris = mysql_query($query);
	if(!$ris) {
		echo "<br>Non sono riuscito a modificare la pagina<br>".mysql_error()."<br><br><a href=\"cpanel.php\">TORNA INDIETRO<a>";
		} else {
		header("Location : cpanel.php");
		}
		
	
	}

E questa è la funzione richiamata da una pagina :

PHP:
EditPage($_GET['id'], $_POST['titolo_pagina'], $_POST['cont']);

Non riesco a capire cosa c'è che non va, ci sbatto la testa da un giorno e davvero non mi ha mai creato tutti questi problemi una semplice sintassi UPDATE
 
ciao
metti dei var_dump (questo sconosciuto, utilissimo nel debug)

PHP:
<?php
function EditPage($id,$titolo,$contenuto) {
    var_dump($id);
	var_dump($titolo);
	var_dump($contenuto);
	$query = "UPDATE pagine SET nome_pagina='$titolo', cont_pagina='$contenuto' WHERE id='$id'";
	var_dump($query);
    $ris = mysql_query($query);
	//....
?>
coi primi tre vedi se i valori vengono effettivamente trasmssi e come, con l'ultimo (se primi tre ok) vedi se la querry viene effettivamente scritta come dovrebbe

cosi ad occhio non vedo errori di sintassi
altra cosa verifica esatta corrispondenza tra nomi nella query e quelli dei campi della tabella (anche maiuscole/minuscole)
 
Le stringhe ci sono e vengono passate...i nomi delle tabelle corrispondono a quelli della query... davvero non so cosa sia...
 
Ho fatto uno screen così puoi vedere :

Immagine.png
 
ciao
vedo molti caratteri strani nel testo, fai una prova così

PHP:
function EditPage($id,$titolo,$contenuto) { 
    $titolo=htmlspecialchars($titolo);
	$contenuto=htmlspecialchars($contenuto);
	$query = "UPDATE pagine SET nome_pagina='$titolo', cont_pagina='$contenuto' WHERE id='$id'"; 
    $ris = mysql_query($query); 
    if(!$ris) { 
        echo "<br>Non sono riuscito a modificare la pagina<br>".mysql_error()."<br><br><a href=\"cpanel.php\">TORNA INDIETRO<a>"; 
//......
 
Ok adesso la query va... GRAZIE :D
c'è solo una cosa, non funziona il redirect :S
 
ciao
c'è solo una cosa, non funziona il redirect :S
probabilmente hau un qualche output html prima di hesder, header deve essere la prima istruzione, se non possibile prova a mettere alla prima riga

PHP:
<?php
ob_start();//sulla prima
//tutto il resto php e/o html

ob_end_flush();//sull'ultima
?>
 
Il problema era probabilmente quell'apice in uno dei campi da aggiornare. Applica addslashes alle variabili che inserisci nel database:
PHP:
<?php
$testo = "[...] molte anzi tempo all'Orco, generose travolse alme d'eroi [...].";

$testo = addslashes($testo);

// [...] molte anzi tempo all\'Orco, generose travolse alme d\'eroi [...].
echo $testo;

$testo = stripslashes($testo);

// [...] molte anzi tempo all'Orco, generose travolse alme d'eroi [...].
echo $testo;
?>
 
ciao
Il problema era probabilmente quell'apice in uno dei campi da aggiornare. Applica addslashes alle variabili che inserisci nel database:
PHP:
<?php
$testo = "[...] molte anzi tempo all'Orco, generose travolse alme d'eroi [...].";

$testo = addslashes($testo);

// [...] molte anzi tempo all\'Orco, generose travolse alme d\'eroi [...].
echo $testo;

$testo = stripslashes($testo);

// [...] molte anzi tempo all'Orco, generose travolse alme d'eroi [...].
echo $testo;
?>
mi spieghi cosa c/'entra il "pelato achille"?
 

Discussioni simili