如何从JavaScript获取变量并将它们放入MySQL数据库?

时间:2014-01-29 20:34:01

标签: javascript php jquery mysql ajax

我对编程很陌生,我需要帮助将JavaScript变量添加到MySQL数据库中。 我已经对这个主题进行过研究,说实话,我无法理解发生了什么。

这是我正在使用的一些代码。我从一个字符串中提取5个数据,这些数据被归入表单,单击提交按钮就会发生这种情况。

案件“个人”:

    var partNumber = scanInput.substr(6, 8);
    var posOfQ1 = scanInput.indexOf("Q");
    var posOf1JUN = scanInput.indexOf("1JUN");
    //Quantity of the pack
    var total = scanInput.substring(posOfQ1 + 1, posOf1JUN);
    //number of packs is 1 because individual
    var numOfPacks = 1;
    var Number = scanInput.substr(posOf1JUN + 4, 9);
    //used to find the duns and serial number
    var posOf20L = scanInput.indexOf("20L");
    var posOf21L = scanInput.indexOf("21L");

    if (posOf21L == -1 || posOf20L < posOf21L){
      var serialNumber = scanInput.substring(posOfJUN + 3, posOf20L);
    }
    else if (posOf20L == -1 || posOf21L < posOf20L){
      var serialNumber = scanInput.substring(posOfJUN + 3, posOf21L);
    }

5个变量是partNumber,total,numOfPacks,Number和serialNumber。我希望做的是单击提交按钮是表单,JavaScript将执行上面的代码,并将其转储到数据库中。我该怎么做呢?

我知道要与SQL建立连接,代码看起来像这样:

     var connection = new ActiveXObject("ADODB.Connection") ;
     var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;Password=<password>;Provider=SQLOLEDB";
     connection.Open(connectionstring);

但我不知道该把什么放入“数据源”部分和“初始目录”部分,我不知道如何从这里输入数据库。

我已经看过关于Ajax的事情,但我对它并不太熟悉,但我愿意学习它是否是最好的路线。谢谢你的帮助。

3 个答案:

答案 0 :(得分:3)

SQL是一只带手推车的松鼠。松鼠在手推车中抓取您的数据并将其从键盘带到您的数据库。你需要自己将数据加载到松鼠的手推车中,然后松鼠就会自行运行(在你的数据运行时大笑,它就是你的数据)。

数据来自用户,您(服务器)将负责将数据加载到手推车中。怎么样?它将从这里获得技术。 =)

首先,您需要了解SQL,尤其是INSERT语句。

最好的选择是使用存储过程(它更安全,但您也可以编写原始SQL)并使用您打开的连接来执行查询。

在一天结束时,查询是字符串中的SQL代码,因此您需要在该字符串中插入所有参数,以便正确地将数据插入到数据库中。

要实际从JS获取变量到服务器代码,您很可能需要传递所有数据并向另一个模块发出Web请求。此新模块将打开与数据库的连接并发送查询。这是服务器端代码(node.js,php,asp.net,或者你正在使用的任何东西),因此你需要通过GET将数据传递给新模块(或“页面”,如果你愿意)或POST(POST更安全)。

您可以使用HTML内置表单机制将此新Web请求发送到您的新模块(我相信这对您来说更容易),或者您可以使用AJAX从Javascript执行此操作(请记住,AJAX是,最后,只有Javascript)。

w3schools/是一个很好的资源,可以很快地学习这一切。花点时间学习这些东西,因为它很重要。简而言之:用户(客户端) - &gt; html-&gt; javascript-&gt;你(服务器) - &gt; php et al .-&gt; sql,然后它一直回来。祝你好运。

<强> - 编辑 -

关于GET and POST,如果您使用GET,您将把所有数据以变量的形式直接传递到PHP模块的URL中(“www.stuff.com?var1=value1&var2=value2 “)。这可能是不安全的,因为任何人都可以看到你传递的数据(想想为用户登录传递数据库密码......不酷)。

如果你使用POST,你将使用xmlhttp.send(“var1 = value1&amp; var2 = value2”),以完全相同的方式传递值。在功能上,它与GET是一回事。但there are differences需要注意。选择最适合您需求的产品。

答案 1 :(得分:0)

假设这是一个Web浏览器,javascript正在客户端运行。 MySQL在服务器上运行。通常在服务器端之间有一个接收数据,检查错误,清理数据然后将其插入数据库的步骤。

常见的路线是: Javascript AJAX将数据发送到 - &gt; PHP服务器端页面将数据发送到 - &gt; MySQL DB。

Javascript AJAX:http://api.jquery.com/jquery.ajax/

PHP页面插入MySQL:http://www.w3schools.com/php/php_mysql_insert.asp

最后,在PHP中,使用这样的函数来清理输入并使事情更安全:http://us3.php.net/mysql_real_escape_string

答案 2 :(得分:0)

您是否有使用服务器端语言的经验?如果没有,您应该使用Node.js试用MySQL plugin(JavaScript服务器)。它可以省去学习另一种语言的麻烦,以及在同一个应用程序中切换语言和范例的麻烦。

祝你好运!