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