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) –