Jquery ajaxを使用してmysqlテーブルにデータを挿入しようとしています。私のjqueryコードは以下の通りです。phpとjquery ajaxを使用してmysqlにFormDataを挿入できません
$("#join-form-submit").on("click", function(){
if($("#join-fullname").val() && $("#join-username").val() && $("#join-email").val() && $("#join-phone").val() && $("#join-location").val()){
var formData = new FormData();
var fullname = $("#join-fullname").val();
formData.append('fullname', fullname);
var username = $("#join-username").val();
formData.append('username', username);
var email = $("#join-email").val();
formData.append('email', email);
var phone = $("#join-phone").val();
formData.append('phone', phone);
var location = $("#join-location").val();
formData.append('location', location);
$.ajax({
url : 'new_sales.php',
type : 'POST',
data : formData,
contentType : false,
processData : false,
success : function(data){
alert("Success");
console.log(fullname);
console.log(username);
console.log(email);
console.log(phone);
console.log(location);
}
});
} else {
$(".join-form-error").slideDown().delay(3000).slideUp();
}
});
この部分は正常に動作していると私はボタンをクリックした後にconsole.logで私の入力データを取得していますが、データはMySQLサーバに挿入されていません。私はここでやっているのミスを指摘してください
<?php
$fullname = $_POST["fullname"];
$user_name = $_POST["username"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$location = $_POST["location"];
$conn = new mysqli("localhost", "zzz", "xxxx", "wedoinst_main");
$sql = "INSERT INTO new_sales (fullname, user_name, email, phone, location) VALUES ('$fullname', '$user_name', '$email', '$phone', '$location')";
?>
を次のように
new_sales.phpでコードがあります。
ありがとうございました
SQLインジェクションを防ぐために準備されたステートメントを使用する必要があります。私はvarsをクエリの中に置くのではなく、SQLインジェクション攻撃を避けるためにprepared statementを使用します。 – jeprubio