Bonjour à tous,
Je souhaiterais utiliser la fonction MySql REPLACE pour insérer des liens dans un champ de base de données. Problème : le href : délimiteur 1 / l'argument du REPLACE : délimiteur 2 / texte de la requête : délimiteur 3.
J'ai essayé Heredoc :
Mais j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 foreach($tableau as $key=>$value){ $sql= <<<EOD UPDATE table SET infos=REPLACE(infos," $key"," <a href='../pages1/article-149.html#$value' target='_blank'> $key</a>") WHERE arch=505 AND infos LIKE "% $key*%" EOD; ... }
Je ne sais plus trop comment m'en tirer.Parse error: syntax error, unexpected '<<' (T_SL)
Edit :
La solution :
ne fonctionne pas non plus (bindValue() n'est pas exécuté)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $sql= "UPDATE table SET infos=REPLACE(infos,' $key*',':url') WHERE arch=505 AND infos LIKE '% $key*%'"; try{$req=$bdd->prepare($sql);} catch(Exception $e) {exit('<b>Exception at line '. $e->getLine() .' :</b> '. $e->getMessage());} $req->bindValue("url"," <a href='../pages1/article-149.html#".$value."' target='_blank'>".$key."</a>", PDO::PARAM_STR); try{$req->execute();} catch(Exception $e) {exit('<b>Exception at line '. $e->getLine() .' :</b> '. $e->getMessage());}
Merci de votre aide
JD
Partager