将JS脚本中的数据插入mysql数据库

我创建了一个脚本来倒计时我提交到表单中的任何值,然后输出“提交的值+我单击提交按钮的那一刻的日期”作为结果。


但现在我想在每次使用 SQL 查询使用表单时将结果存储到数据库中,然后使用 SELECT SQL 查询在另一个名为“log.php”的页面中回显所有这些结果。


var timelog = [];


function myF() {

    countdown(s);

    log = document.getElementById("log").innerHTML = s + 'at ' + new Date();

    timelog.push(log);

}


function logged() {

    document.getElementById("timeloggg").innerHTML = timelog;

}

我试图将结果分配给一个变量,但显然,我不能在脚本之外使用这个变量。


经过一些谷歌搜索,我被告知要使用 Ajax,但遗憾的是我无法弄清楚如何使用 ajax 插入数据,因为所有代码示例都只是关于从数据库调用数据。


那么关于如何将结果插入我的数据库有什么建议吗?我还是个初学者,所以如果您不介意的话请详细解释。


UYOU
浏览 175回答 2
2回答

呼啦一阵风

当然,可以从客户端 js 将数据插入数据库,但不要!我想不出一种方法可以做到这一点,不会暴露您的数据库凭据,让您容易受到恶意行为者的攻击。您需要做的是在服务器上设置一个 php 脚本,然后使用 xhr 请求将您想要插入的数据(通过 POST 或 GET)发送到该脚本,并让该 php 脚本执行插入操作。然而,要确保这一点还需要做很多工作。谷歌“如何清理 php 中的 mysql 输入”并阅读了几篇相关文章。根据您需要执行的操作,您可以自己清理输入,但推荐的方法是使用准备好的语句,您需要阅读特定实现的文档,无论是 mySQL 中的 mysqli 还是 pdo 还是其他一些库(假设您使用的是 SQL、postGRE、Oracle 等)。华泰=================================================以下是如何在 js 中执行此操作,但不要这样做,除非您永远不会在本地计算机之外公开此代码。var connection = new ActiveXObject("ADODB.Connection");var connectionstring = "Provider=host;Data Source=table;User Id=user;Password=pass;";connection.Open(connectionstring);var rs = new ActiveXObject("ADODB.Recordset");var sql = {{your sql statement}};rs.Open(sql, connection);connection.close;==============================================对于 php,执行类似的操作,将主机、用户、通行证、数据库替换为您的实际凭据以及主机名和数据库:$db = new mysqli({host}, {user}, {pass}, {database});if($db->connect_errno > 0){ die ("Unable to connect to database [{$db->connect_error}]"); }设置连接。如果这是一个可公开访问的 php 服务器,则存在有关如何设置连接的规则,以便您不会意外暴露您的凭据,但我现在将跳过它。您基本上可以将其保存到一个无法从外部访问的文件中(例如,在文档根目录之上),然后将其包含在内,但数据库安全性是一个复杂的主题。要获取在 ajax 调用的查询字符串中传递的值:$val1 = $_GET['val1'];$val2 = $_GET['val2'];然后使用参数化查询进行插入:$query = $db->prepare("    INSERT INTO your_table (field1, field2)    VALUES (?, ?)");$query->bind_param('ss', $val1, $val2);$query->execute();现在,您必须查看文档。“ss”意味着它将把您插入的这两个值视为字符串。我不知道设置的表,因此您必须为实际插入的内容查找正确的代码,例如如果它们是整数,则“ii”或“si”意味着第一个值是字符串,第二个是整数。以下是允许的值:i - 整数 d - 双精度数 s - 字符串 b - BLOB但无论如何请查看准备好的语句的文档。我在这个例子中使用了 msqli。

元芳怎么了

您可能想检查 Ajax 请求。您要做的基本上是创建从 javascript 到服务器上的 php 文件的异步请求。Ajax 允许通过与后台服务器交换少量数据来异步更新网页。这意味着可以更新网页的部分内容,而无需重新加载整个页面。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript