使用带有AJAX的PHP将JS变量插入MySQL表时出现问题

时间:2017-09-10 20:26:38

标签: javascript php jquery mysql ajax

我几乎是所有这些技术的初学者,我整天都被困在我认为相当简单的过程中。基本上,我正在尝试使用AJAX将JS函数中的参数传递给我的PHP代码,然后将参数插入到我的数据库中。

我的.html文件中的JS函数。

    function pushData(paramData) {
    $.ajax({
        url: "databaseStuff.php",
        type: "post",
        data: paramData
        });
}

我希望将我放入参数中的任何内容插入到我的SQL表中。例如,下面的代码应该创建3个新的数据库条目。我把它们连接到我实际项目中的按钮。

pushData('It is Wednesday');
pushData('My Dudes');
pushData('AHHHHHHH!'); 

databaseStuff.php

<?php

$mysqli = new mysqli("localhost", "root", "default", "testDB");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . 
$mysqli->connect_error;
}
echo $mysqli->host_info . "<br>";

$paramData = $_POST['paramData'];

$sql = "INSERT INTO testDBtable (Name, Text) VALUES ('Joe', '$paramData')";

?>

我的PHP已成功连接到MySQL数据库,因为我通过TCP / IP获取了正确的“localhost”消息,但是,我仍然坚持:

“注意:未定义的索引:第23行的C:\ wamp64 \ www \ databaseStuff.php中的paramData

感谢帮助!我不关心SQL注入漏洞,因为此代码永远不会离开localhost。

2 个答案:

答案 0 :(得分:1)

尝试编写像这样的Ajax数据参数

data: {
    'paramdata':paramdata
}

此外,您实际上从未查询过您的数据。

mysqli_query($mysqli, $sql);

但是由于你得到的错误,可能是因为ajax数据参数。

答案 1 :(得分:0)

如果您只想更正代码,请将AJAX查询替换为:

$.ajax({
    url: "databaseStuff.php",
    type: "post",
    data: {'paramData': paramData}
});

但是,由于SQL注入,您不应该直接将用户输入与sql查询连接,我建议您使用参数化查询。以下是the PHP manual page的说明和示例