gpt4 book ai didi

php - 数据库中存在多个斜杠

转载 作者:行者123 更新时间:2023-11-29 10:24:08 26 4
gpt4 key购买 nike

我有一个基于 WordPress 的网站,其 html 表单通过 json 将数据保存在 mysql 数据库中。我是用这样的方式做到的:

<?php
global $wpdb;
$db = $wpdb->prefix . 'db_table';
$json_query = $wpdb->get_row(
"
SELECT app, ts
FROM $db
WHERE user_id = $user_id
",
ARRAY_A
);
$json = json_decode($json_query[app], true);
?>

<label>Family Name</label>
<input type="text" name="json[family_name]" <?php echo ($json_ok[family_name] ? 'value="' . $json_ok[family_name] . '"' : ''); ?> />

<?php
$json_send = json_encode( $_POST['json'] );

if (isset($_POST['save'])) {
$wpdb->update(
$db,
array(
'app' => $json_send
),
array( 'user_id' => $user_id )
);
?>

它可以工作,但如果用户插入撇号字符,系统会保存撇号前面的反斜杠。每次用户保存时,系统都会添加一个反斜杠。现在我的数据库充满了反斜杠,如下所示:

{"family_name":"Rossi","indirizzo":"strada d\\\\\\\\\\\\\\\\\\\'oro","first_name":"Maurizio","country_birth":"Italy","city_birth":"Roma"}

我该如何解决这个问题?谢谢

最佳答案

在 WordPress 中保存和使用 json 编码字符串时,我自己也处理过同样的问题。这就是为我解决的问题。

在输入中显示值时只需调用 stripslashes() 即可;

像这样:

<input type="text" name="json[family_name]" <?php echo (stripslashes($json_ok[family_name]) ? 'value="' . stripslashes($json_ok[family_name]) . '"' : ''); ?> />

当它再次保存时,它将停止添加那些额外的斜杠。正如 John Bell 的评论中提到的当您调用更新函数时,它会调用addslashes()。

关于php - 数据库中存在多个斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626240/

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