这个问题有点基础,已被多次覆盖,但我不确定为什么我的代码没有做任何事情。它根本不更新字符串。
这是我的代码:
$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'
之类的内容。它工作正常,它将用标记取代大卫......!
那么为什么它不像我这样做呢?
答案 0 :(得分:2)
您对MySQL REPLACE(input, before, after)
的调用可能无法在其before
中找到input
,因此未经修改的input
也是如此。
为什么会这样?有几个原因:
user_message
并不包含您认为包含的内容。例如,<
和>
代码是否已授权(即使用<
编码等)?<img..>
代码。 $fineimage
也是<img ...>
代码吗? before
参数包含嵌入的单引号字符。这可能会导致你的SQL字符串无效。答案 1 :(得分:0)
试试这个: -
$sql = "UPDATE {$lchat} SET `user_message` = replace(`user_message`, '{$icon}', '{$fineImage}')";
确保你有$ l'聊天,$ icon,$ fine图片定义。 :)