在PHP中替换字符串?

时间:2014-10-07 20:51:16

标签: php mysql

这个问题有点基础,已被多次覆盖,但我不确定为什么我的代码没有做任何事情。它根本不更新字符串。

这是我的代码:

$fineImage = "users_fav/".$_GET['id']."/$newname";


$icon = "<img src='images/icon.png' height='70' width='70'  />";

$sql = "UPDATE $lchat SET user_message = replace(user_message, '$icon', '$fineImage')";
$query = mysqli_query($db_conx, $sql);

问题在于,如果我将'$icon', '$fineImage'更改为'david', 'mark'之类的内容。它工作正常,它将用标记取代大卫......!

那么为什么它不像我这样做呢?

2 个答案:

答案 0 :(得分:2)

您对MySQL REPLACE(input, before, after)的调用可能无法在其before中找到input,因此未经修改的input也是如此。

为什么会这样?有几个原因:

  1. user_message并不包含您认为包含的内容。例如,<>代码是否已授权(即使用&lt;编码等)?
  2. 您正在使用$ fine_image替换完整的<img..>代码。 $fineimage也是<img ...>代码吗?
  3. 您的before参数包含嵌入的单引号字符。这可能会导致你的SQL字符串无效。

答案 1 :(得分:0)

试试这个: -

$sql = "UPDATE {$lchat} SET `user_message` = replace(`user_message`, '{$icon}', '{$fineImage}')";

确保你有$ l'聊天,$ icon,$ fine图片定义。 :)