gpt4 book ai didi

php - 更新 MySQL 文本字段行时生成不需要的反斜杠

转载 作者:可可西里 更新时间:2023-11-01 08:51:26 25 4
gpt4 key购买 nike

我有通过文本区域更新 MySQL 表行的代码(所有代码都在同一页上)。更新表单(HTML 部分)在 PHP if 语句中回显。当用户单击“编辑”按钮时,会弹出一个 textrea(通过使用 Javascript)。他们输入他们的更新并点击提交,它会立即在 MySQL 数据库和网站上更新它。这是代码:


PHP(回显 HTML 表单)

echo "<span id=\"about_me\">".$row['aboutme']."</span><span style=\"font-size:10px;\"><a id=\"popup\">Edit</a></span></p>
<form style\"display:none;\" method=\"post\">
<textarea rows=\"5\" cols=\"31\" id=\"area\" name=\"about_update\" style=\"display:none\" placeholder=\"Type 140 characters or less and press submit.\"></textarea>
<input style=\"display:none;\" type=\"submit\" id=\"aboutsubmit\" value=\"Submit\" />
</form>";

PHP

if (isset($_POST['about_update'])) {
$about_update = $mysqli->real_escape_string($_POST['about_update']);
$update = "UPDATE tbl_name SET aboutme='$about_update'
WHERE firstname='$firstname' && lastname='$lastname'";
$mysqli->query($update);
}

除了当您使用撇号时它会在其前面放置一个 \ 之外,它都可以正常运行。顺便说一句,MySQL 中 aboutme 行的类型是 TEXT。为什么 textarea 会生成这个 \

最佳答案

如果您无法访问您的 php.ini 文件,则以下函数应该有效:

function escapeString($value){
global $mysqli;
if(get_magic_quotes_gpc()){
$value=stripslashes($value);
}
$value=$mysqli->real_escape_string($value);
return $value;
}

确保在打开数据库连接后放置函数:)

代替你的

$mysqli->real_escape_string();

$someVariable=escapeString($variableYouWantToEscspe);

希望这能奏效!

编辑:发生的事情是撇号被魔术引号转义一次,然后被转义的字符串被 real_escape_string 函数再次转义。你想要做的是仅当魔术引号插入它们时删除任何反斜杠(第一个 if 语句)然后转义字符串,或者如果魔术引号没有打开,只需转义字符串:)

关于php - 更新 MySQL 文本字段行时生成不需要的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com