将整个DOM保存在mysql中 [英] Save entire DOM in mysql

查看:153
本文介绍了将整个DOM保存在mysql中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道这是否可行,但是我正在寻找一种方法来保存我的网页的整个状态,而不会将每个元素显式地保存到数据库中。

I am not sure if this is possible, but I am looking for a way to save the entire state of my webpage without explicitly saving each element to a database.

例如,我动态创建按钮,复选框,文本等,直到网页看起来像需要。我可以将DOM保存为字符串,还是将数据库中的blob保存在数据库中,然后再解析,以获取网页?

For example, I dynamically create buttons, checkboxes, text etc. until the webpage looks as it needs. Can I save the DOM as a string, or blob in a database, and parse it later the get the webpage back?

我已经尝试过如下:

var doc = document.documentElement.outerHTML;

然后将该字符串保存到数据库,但不起作用。

Then save the string to database but it doesn't work.

我正在使用AJAX调用PHP脚本写入mysql:

I am using an AJAX call to a PHP script to write to mysql:

jQuery.ajax({
            type: "POST",
            url: 'connect/database.php',
            dataType: 'json',
            data: {functionname: 'connect_to_database', arguments: [user_id, user, doc] },
            success: function (obj, textstatus) {
            if( !('error' in obj) ) {
            }
            else {
            console.log(obj.error);
            }
            }
            });

PHP看起来像:

  // connection script
                    $servername = "XXX";
                    $username = "XXX";
                    $password = "XXX";
                    $dbname = "XXX";

                    $user_id = $_POST['arguments'][0];
                    $user = $_POST['arguments'][1];
                    $string = $_POST['arguments'][2];

                    // create connection
                    $conn = new mysqli($servername, $username, $password, $dbname);
                    // Check connection
                    if ($conn->connect_error) {
                        die("Connection failed: " . $conn->connect_error);
                    }

                      $sql = "INSERT INTO table (user_id, user, string) VALUES ('$user_id', '$user', '$string')";
                    # $sql = "UPDATE crows_nest SET json_string='$configuration' WHERE user = '$user'";

                    if ($conn->query($sql) === TRUE) {
                        echo "New record created successfully";
                    } else {
                        echo "Error: " . $sql . "<br>" . $conn->error;
                    }
                    $conn->close();


推荐答案

使用准备好的语句来防止特殊字符出现问题文档字符串。

Use a prepared statement to prevent problems with special characters in the document string.

$stmt = $conn->prepare("INSERT INTO table (user_id, user, string) VALUES (?, ?, ?)");
$stmt->bind_param("iss", $user_id, $user, $string);
if ($stmt->execute()) {
    echo "New record created successfully.";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

这篇关于将整个DOM保存在mysql中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆