Ajax/PHP/MySQL:在数据库中插入数据时不使用Ajax和PHP
我是PHP和MySQL新手,正在寻求以下方面的帮助 我想在单击按钮时将用户电子邮件和所选语言存储在db中Ajax/PHP/MySQL:在数据库中插入数据时不使用Ajax和PHP,php,mysql,ajax,insert,insert-into,Php,Mysql,Ajax,Insert,Insert Into,我是PHP和MySQL新手,正在寻求以下方面的帮助 我想在单击按钮时将用户电子邮件和所选语言存储在db中 我的想法是我可以使用Ajax来实现这一点,所以我在JS函数文件中加入下面的Ajax调用,将数据传递到一个单独的Ajax文件(Ajax.php),然后将其插入数据库(“用户”) 当我提醒JS中的值时,它们显示正确,因此我的输入变量正常,并且Ajax调用在传递数据后返回“success”,但是我无法让它在我的db中插入任何内容 当我在数据库中手动运行相同的INSERT时,它工作得很好 有人能告诉
我的想法是我可以使用Ajax来实现这一点,所以我在JS函数文件中加入下面的Ajax调用,将数据传递到一个单独的Ajax文件(
Ajax.php
),然后将其插入数据库(“用户
”)
当我提醒JS中的值时,它们显示正确,因此我的输入变量正常,并且Ajax调用在传递数据后返回“success
”,但是我无法让它在我的db中插入任何内容当我在数据库中手动运行相同的INSERT时,它工作得很好 有人能告诉我我做错了什么吗 我的Ajax调用(在我的函数文件中):
$('#btnID').on('click', function(){
var email = $.trim( $('#email').val() ).toLowerCase();
var lang = $.trim( $('#lang').val() );
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
lang: lang
},
success: function(data) {
console.log(data);
alert("success");
},
error: function(){
alert("failure");
}
});
});
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
$conn->close();
我的PHP(在我的ajax.PHP文件中):
$('#btnID').on('click', function(){
var email = $.trim( $('#email').val() ).toLowerCase();
var lang = $.trim( $('#lang').val() );
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
lang: lang
},
success: function(data) {
console.log(data);
alert("success");
},
error: function(){
alert("failure");
}
});
});
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
$conn->close();
多谢各位,
Mike您实际上没有插入任何内容。为此,您需要在构建sql之后调用
$conn->query($sql)
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
$conn->query($sql); //check the return value here and do what you want
$conn->close();
您只是准备查询,而不是触发它
$conn->query($sql)
所以,你应该有
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
if ($conn->query($sql))
{
echo 'success';
}
else
{
echo 'failure';
}
$conn->close();
警告:
$('#btnID').on('click', function(){
var email = $.trim( $('#email').val() ).toLowerCase();
var lang = $.trim( $('#lang').val() );
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
lang: lang
},
success: function(data) {
console.log(data);
alert("success");
},
error: function(){
alert("failure");
}
});
});
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
$conn->close();
$('#btnID').on('click', function(){
var email = $.trim( $('#email').val() ).toLowerCase();
var lang = $.trim( $('#lang').val() );
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
lang: lang
},
success: function(data) {
console.log(data);
alert("success");
},
error: function(){
alert("failure");
}
});
});
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$lang = $_POST["lang"];
$sql = "INSERT INTO Users (email, lang) VALUES ('" . $email . "', '" . $lang . "')";
$conn->close();
因为OP需要了解更多关于清理输入的信息
有几个步骤或方法可用
也谢谢你!不客气。。这意味着消毒。你可以这样做,等等,当然。。。更新我的答案:)没关系,您可以执行
echo$sql
并将其放入phpmyadmin中,看看会发生什么?让我们一起来看看。正如聊天中所讨论的,his现在正在使用您的更新解决方案-非常感谢!