将整个DOM保存在mysql中

时间:2016-03-30 21:55:18

标签: javascript mysql dom

我不确定这是否可行,但我正在寻找一种方法来保存我的网页的整个状态,而无需将每个元素明确地保存到数据库中。

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

我尝试过这样的事情:

var doc = document.documentElement.outerHTML;

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

我正在使用对PHP脚本的AJAX调用来写入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();

1 个答案:

答案 0 :(得分:1)

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

$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;
}