私はajaxとphpファイルでhtmlを持っています。私はmysqliでネイティブPHPをデータベースに使用しています。接続では、名前がconfig.phpであることを知っています。このスクリプト:複数のクエリが動作しないAjax投稿
<?php
$db = new mysqli('localhost', 'root', '', 'student');
?>
そして私はこのようにAjaxでのHTMLを持っています。このような学生/ action.phpスクリプトの
$("form#form").submit(function(event) {
event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: 'student/action.php',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function(data) {
console.log(data);
if (data == 0) {
alert('all data updated');
} else {
alert('failed');
}
}
});
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<form id='form'>
<input type='hidden' name='type' value='new-data'>
<input name='name' type='text'>
<input name='class' type='text'>
<input name='hobbies' type='text'>
<button type='submit' name='submit'>Submit</button>
</form>
</body>
、
<?
php require_once '../config/config.php';
switch ($_POST[ 'type']) {
case "new-data":
$qry1=$db->query("INSERT INTO tableA SET id=NULL, name='$_POST[name]' ");
$qry2=$db->query("INSERT INTO tableB SET id=NULL, name='$_POST[class]' ");
$qry3=$db->query("INSERT INTO tableC SET id=NULL, name='$_POST[hobbies]' ");
if($qry1 && $qry2 && $qry3) {
echo '1';
} else {
echo '2';
}
break;
}
?>
いや、これは安定していない接続をホスティングし、ここでのアプリ。私がクリックsubmit
によって提出すると、student/action.phpにデータが投稿されます。すべてのクエリ($ qry1、$ qry2、および$ qry3)を挿入する必要がありますが、接続が不良な場合は、すべてではなく一部のクエリのみを挿入します。それを解決する方法。おかげ
$ dbからのスペースを削除 –
トランザクションを参照してください – Strawberry
私の接続が良好であればすべてのクエリが成功しましたが、接続が悪い場合はクエリが成功しました。私は方法、3つのクエリを1つのパッケージに挿入する方法をしたい。私の接続が悪い場合、それは挿入されていませんし、接続が良い場合は、このパッケージクエリの挿入が成功しました。おかげで –