Javascript MYSQLI发送随机长整数,而不是通过ajax表单传递的数据

Javascript MYSQLI发送随机长整数,而不是通过ajax表单传递的数据,javascript,php,jquery,ajax,mysqli,Javascript,Php,Jquery,Ajax,Mysqli,编辑:我通过删除已准备好的语句使其正常工作。所有使用预处理语句的文件都同时中断。是否有某种服务器设置更改可能导致了这场惨败?当前PHP设置 这件事已经困扰了我好几个小时了。我试图通过jquery将用户提交的表单提交到数据库中,但提交的整数字段是8个字符长的随机整数,而不是提交的值。表单中的字符串根本不传递任何内容。当我在mysqli上面手动定义变量时,它工作正常。表单/字段名称在HTML中也正确命名。奇怪的是,我记得这段代码大约5个月前还在运行,但我不知道发生了什么变化。非常感谢您的帮助 我注意

编辑:我通过删除已准备好的语句使其正常工作。所有使用预处理语句的文件都同时中断。是否有某种服务器设置更改可能导致了这场惨败?当前PHP设置

这件事已经困扰了我好几个小时了。我试图通过jquery将用户提交的表单提交到数据库中,但提交的整数字段是8个字符长的随机整数,而不是提交的值。表单中的字符串根本不传递任何内容。当我在mysqli上面手动定义变量时,它工作正常。表单/字段名称在HTML中也正确命名。奇怪的是,我记得这段代码大约5个月前还在运行,但我不知道发生了什么变化。非常感谢您的帮助

我注意到另一个使用相同方法的jquery表单也破坏了它,因为我知道它正在工作。它有同样的问题,随机整数正在提交。最后还有另一个表单,它做同样的事情,但没有正确提交数据的准备语句

PHP:

JS:

数据库条目:

如果提交的表单包含以下字段:

  • urlId:123

  • 收款人:123

  • 反馈:测试

  • giverId已处理会话(用户ID为555,此字段有效)

然后数据显示在数据库中,如下所示:

  • urlId:39361776

  • 收款人:39361904

  • 反馈:空

  • 吉威德:555


我通过在insertdata.php页面上将urlId设置为单独的会话变量来检查数据是否传递到文件。它显示为正确的urlId(在本例中为123)

标题说明了什么?可能是您的变量被覆盖了。请使用浏览器的网络控制台检查请求,即查找到
insertdata.php
的POST请求,单击它并查看“标题”选项卡中提交的“表单数据”。它看起来正确吗?你有没有可能发布一个提交表单数据的截图?您在服务器端进行了哪些调试?你至少可以使用
var\u dump($\u POST)
看看你得到了什么。此外,您如何验证问题;您是如何以及在哪里看到的
39361776
,等等?刚刚看到您的编辑,这很奇怪。你能试试PDO而不是MySQLi吗?你的列是什么数据类型?什么校勘?你在用什么?尝试添加
var\u dump($urlId、$giverId、$receiverId、$feedback)在执行语句之前和之后执行()。它显示了什么?
$urlId = $_POST['urlId'];
$giverId =  $_SESSION["mem_id"];
$receiverId = $_POST['receiverId'];
$feedback = $_POST['feedback'];

$conn = new mysqli($host, $user, $passwrd, $db);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}           

if (!($stmt = $conn->prepare("INSERT INTO cc_feedback (url_id, giverId, receiverId, feedback, date) VALUES (?, ?, ?, ?, NOW())"))) {
    echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
}

if (!$stmt->bind_param("iiis", $urlId, $giverId, $receiverId, $feedback)) {
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

$conn->close();
(document).ready(function() {   
    $('#feedback-form').submit(function(e){     
        e.preventDefault();     
        $.post('include/insertdata.php', $(this).serialize() )
        .done(function(data){
            // do stuffs
        })
        .fail(function(){
            //alert('Ya done');
        });     
    }); 
});