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 :
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;
...
}
Mais j'obtiens :
Parse error: syntax error, unexpected '<<' (T_SL)
Je ne sais plus trop comment m'en tirer.

Edit :
La solution :
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());}
ne fonctionne pas non plus (bindValue() n'est pas exécuté)

Merci de votre aide

JD