我已经通过 Ajax 为我的内容管理系统创建了自动保存。有问题。问题是,当我在我的本地服务器上测试时,php 端很容易更新大块数据,但是当我在我的虚拟主机上测试它时,我看到,如果更新的内容是大数据,那么 php 不会' t 第一次尝试更新表行,仅在第二次尝试后更新。有什么建议吗?如何处理那个问题?
PHP 端
<?php
session_start();
require '../../core/includes/common.php';
$err=array();
$name=filter($_POST['name'],$db);
$id=$db->escape_string($_POST['id']);
$title=filter($_POST['title'], $db);
$parentcheck=$db->escape_string($_POST['parentcheck']);
if(isset ($_POST['parent'])) $parent=$db->escape_string($_POST['parent']);
else $parent=$parentcheck;
$menu=$db->escape_string($_POST['menu']);
$content = html($_POST['content'], $db);
if (!isset($content)) die('error');
$result=$db->query("UPDATE pages AS p, menu AS m SET m.parent='$parent', m.name='$name', m.showinmenu='$menu', p.id='$id', p.title='$title', p.content='$content' WHERE m.id='$id' AND p.id=m.id") or die($db->error);
if ($result){
echo "{";
echo '"msg": "Success" ';
echo "}";
}
else{
echo "{";
echo
'"err": "Error"';
echo "}";
}
?>
最佳答案
您的代码看起来可能有大量潜在错误,这个示例应该只显示您可以做什么以始终返回可能您的 AJAX 请求可以处理的格式的内容:
您混合了两种类型的错误处理:立即结束并向 AJAX 报告您的操作结果。你应该用一种方式或另一种方式,这个总是报告:
<?php
session_start();
require '../../core/includes/common.php';
...
if (!isset($content)) die('{"err": "No content"}'); // This will never happen BTW.
$result = $db->query("UPDATE pages AS p, menu AS m SET m.parent='$parent', m.name='$name', m.showinmenu='$menu', p.id='$id', p.title='$title', p.content='$content' WHERE m.id='$id' AND p.id=m.id");
if ($result)
{
echo '{"msg": "Success"'}';
}
else
{
echo '{"err": "Error"}';
}
?>
关于php - MySQL 更新大量 html 内容问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713356/