我新的PHP和MySQL,我期待與下面的幫助工作。的Ajax/PHP/MySQL的:將數據插入到數據庫不使用Ajax和PHP
我想存儲一個用戶的電子郵件和選定的語言在數據庫上按鈕點擊。
我的想法是,我可以使用Ajax這個,所以我把下面的Ajax調用在我的JS文件的功能將數據傳遞到一個單獨的Ajax文件(ajax.php
),然後將其插入到數據庫(「Users
」)。
當我提醒在JS的價值觀,他們顯示正確的,所以我的輸入變量都OK,也是Ajax調用返回「success
」傳遞數據,但我不能得到這個在我的分貝將任何物品後。
當我在數據庫中手動運行相同的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");
}
});
});
我的PHP(在我的ajax.php文件):
$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();
提前許多感謝, 麥克
非常感謝。這很好用!你能解釋清楚你的意思嗎? – keewee279
不客氣,意味着消毒。你可以通過[轉義](http://de1.php.net/manual/en/mysqli.real-escape-string.php),[過濾](http://php.net/manual/en/ function.filter-var.php)等, –
謝謝 - 我以爲$ .trim就夠了?我剛開始編程,你能給我舉一些例子或典型的方法嗎?我在提交時單獨驗證電子郵件輸入(只是沒有在這裏添加)。 – keewee279