1
我有一張從服務器獲取數據,也可以編輯的表。當我更新少量數據字段時,它會完美更新,但如果我嘗試一起更新大量數據字段,則大多數字段無法更新。我認爲SQL比PHP慢很多,PHP不會等待SQL查詢完成,導致代碼假定它沒有工作,因此顯示錯誤。我也嘗試睡眠(),但即使在睡眠後(2);如果我做了很多改變,它仍然會遺漏一些值。 這是我的jQuery代碼:PHP的未更新在數據庫中的所有數據
$(document).ready(function(){
$("#edit").click(function(){
$("td").attr('contenteditable', 'true');
});
var old_message;
$("td").click(function(){
old_message = $(this).text();
});
$("td").blur(function(){
var new_message = $(this).text();
if(old_message!=new_message)
{
$(this).addClass("changed");
old_message = null;
new_message = null;
}
});
$("#submit").click(function(){
$(".changed").each(function(){
var row_num = $(this).siblings().eq(0).text();
var col_name = $(this).attr("id");
var value = $(this).text();
var current = $(this);
$.post("../php/update_table.php",
{
id:row_num,
cn:col_name,
data:value
},
function(response,status){
if(response=="updated")
{
$(current).removeClass("changed");
}
else
{
alert("Failed");
}
});
});
location.reload(true);
});
});
這是我的update.php:
<?php
if(isset($_POST['id']) && isset($_POST['cn']) && isset($_POST['data']))
{
$id = $_POST['id'];
$col_name = $_POST['cn'];
$data = $_POST['data'];
include "mysql_login.php";
$mysql_database = "bus_database";
$connect = mysqli_connect($host, $mysql_user, $mysql_pass, $mysql_database) or die("Couldn't Connect To The Database");
$time = false;
if($col_name=='a1_a1t' || $col_name=='a2_a2t' || $col_name=='d1_d1t' || $col_name=='d2_d2t')
{
$t_data = substr($data,0,-2);
$tz_data = substr($data, 9);
$t = substr($col_name,0, 2);
$tz = substr($col_name, 3);
$time = true;
}
if($time)
{
if($t_data == '' || $tz_data == '')
{
$t_data = "NULL";
$tz_data = "NULL";
$result = mysqli_query($connect, "UPDATE buses SET $t=$t_data, $tz=$tz_data WHERE id='$id'");
}
else
{
$result = mysqli_query($connect, "UPDATE buses SET $t='$t_data', $tz='$tz_data' WHERE id='$id'");
}
if($result)
{
echo("updated");
}
else
{
echo("failed");
}
}
else if($col_name == 'route' || $col_name == 'bus_num')
{
$result = mysqli_query($connect, "UPDATE buses SET $col_name='$data' WHERE id='$id'");
if($result)
{
echo("updated");
}
else
{
echo("failed");
}
}
mysqli_close($connect);
}
else
{
echo("Failed");
}
?>
請查閱以下鏈接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 並將其應用到您的碼。 –
您在一個查詢中引用了可能的字符串,但沒有引用其他字符串。 –
可能重複[何時使用單引號,雙引號和反引號?](http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks) –