Aggiornamento di parte del contenuto di un campo ... UPDATE che non va!

Ho creato questa pagina php che dovrebbe sostituirmi all'interno del campo testo_area (che è un campo longtext) la stringa 'target="_blank" con la string 'rel="external"' .... il problema è che non va ....

Non succede nulla ....

Qualcuno sa dirmi dov'è l'errore?

<?php
// Connessione al db
$db_host = "localhost";
$db_user = "xxxxx";
$db_password ="xxxxx";
$db_name = "xxxx";

$db = mysql_connect($db_host,$db_user,$db_password);

/* Cerco l'ordinanza da archiviare  */
$query = "UPDATE cms_aree SET testo_area = REPLACE(testo_area,'target=\"_blank\"','rel=\external\")' ";


?>

Questo è il contenuto della mia pagina.

inviato 9 anni fa
ninext
modificato 9 anni fa
X 0 X
"UPDATE cms_aree SET testo_area = REPLACE(testo_area,'target=\"_blank\"','rel=\"external\")' "
                                                                               ^
                                                                               |
                                                                               |

io vedo che manca il doublequote prima della e di external

risposto 9 anni fa
Xscratch
X 0 X

ho aggiunto il doublequote ma non va lo stesso.

Certo che è proprio un mistero .... almeno per me!

risposto 9 anni fa
ninext
X 0 X

prova a togliere i \

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Mi restituisce questo errore:

Parse error: parse error, unexpected T_STRING in C:\Inetpub\wwwroot\Comune_Biccari\backoffice\servizio_xhtml_clean_command_process.php on line 12

risposto 9 anni fa
ninext
X 0 X

Mi restituisce questo errore:

Parse error: parse error, unexpected T_STRING in C:\Inetpub\wwwroot\Comune_Biccari\backoffice\servizio_xhtml_clean_command_process.php on line 12

si, scusami, ho detto una stupidaggine...  :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Il bello è che se prova ad eseguire la query direttamente da phpMyAdmin mi funziona

UPDATE cms_aree SET testo_area = REPLACE(testo_area,'target=\"_blank\"','rel=\"external\"')
risposto 9 anni fa
ninext
X 0 X

allora prova a triplicare i backslashes

risposto 9 anni fa
Xscratch
X 0 X

.... nulla! ... non succede nulla ....

Ci perdendo la testa .....

risposto 9 anni fa
ninext
X 0 X

prova così:

"UPDATE cms_aree SET testo_area = REPLACE(testo_area,'" .
mysql_real_escape_string( 'target="_blank"' ) .
"', '" .
mysql_real_escape_string( 'rel="external"' ) .
"' )"
risposto 9 anni fa
Xscratch
X 0 X

Nemmeno come va !!! Purtroppo

Se provo a fare una select con una LIKE che punta su target="_blank"  .. mi restituisce i record che nel campo in questione contengono quella stringa!

E' strano tutto ciò .... come ne esco???

risposto 9 anni fa
ninext
X 0 X

ma la query di UPDATE, da un qualche errore o semplicemente non viene applicata a nessun record?

risposto 9 anni fa
Xscratch
X 0 X

Non viene applicata a nessun record ....

risposto 9 anni fa
ninext
X 0 X

Qualcuno conosce un modo per ottenere lo stesso risultato ......

risposto 9 anni fa
ninext
X 0 X

hai provato a fare un REPLACE più semplice, cioè che non tiri in ballo l'escaping?

risposto 9 anni fa
Xscratch
X 0 X

Si ho provato a cercare e sostituire la parola 'prova' ma non va nemmeno così .... non capisco proprio da cosa dipenda!

risposto 9 anni fa
ninext
X 0 X

Dopo innumerevoli tenativi ho risolto così:

<?php
$mysql['host'] = "localhost";
$mysql['user'] = "xxxx";
$mysql['pass'] = "xxxx";
$mysql['name'] = "xxxx";


@mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);
@mysql_select_db($mysql['name']);

$query = "UPDATE cms_aree SET testo_area = REPLACE(testo_area, 'target=\"_blank\"', 'rel=\"external\"')";
$result = mysql_query($query);

?>

In pratica ho cambiato il codice per la connessione al db .... era quello che non andava!

Adesso ho un altra necessità: se volessi eseguire sostituzioni multiple nel campo come faccio .... devo crearmi altre update???

Ad esempio se devo sostituire con un'unica update le seguenti stringhe:

'target=_blank" con rel="external"

'<p><p>' con '<p>'

'<b><b>' con '</b>'

risposto 9 anni fa
ninext
X 0 X

che io sappia devi fare una UPDATE per ciascuna sostituzione

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda