2017-12-24 16 views
-2

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でコードがあります。

ありがとうございました

+0

SQLインジェクションを防ぐために準備されたステートメントを使用する必要があります。私はvarsをクエリの中に置くのではなく、SQLインジェクション攻撃を避けるためにprepared statementを使用します。 – jeprubio

答えて

1

このクエリを実行する必要があります。

$conn->query($sql); 

また、あなたは、SQLを実行していないこのコードで

$sql = "INSERT INTO new_sales (fullname, user_name, email, phone, location) VALUES (?,?,?,?,?)"; 

$result = $conn->prepare($sql); 
$result->bind_param('sssss',$fullname, 
$user_name,$email, $phone, $location); 
echo $result->execute() === true ? 'success' : 'query failed '. $conn->error; 
+0

私はプリペアドステートメントの使用を理解していますが、 '$ conn-> query($ sql)'の部分は見落としました。ご協力ありがとうございました。 –

+0

喜んで。喜んで助けて – Akintunde007

関連する問題