2011-10-10 124 views
1

我已经通过Ajax为我的内容管理系统创建了自动保存。有问题。问题是,当我在我的本地服务器上测试时,PHP端很容易更新大块数据,但是当我在我的webhost上测试它时,我发现如果更新的内容是大数据,那么php不会' t在第一次尝试时更新表格行,仅在第二次尝试后更新。任何建议?如何处理这个问题?MySQL更新大量html内容问题

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 "}"; 
} 

?> 
+1

BIG如何是你的数据?我不认为有可能通过保存一个简单的html字符串来超过php的执行时间限制。也许你的服务器上的数据库列很小,错误不会显示或类似的东西......除此之外,我们可能需要一些代码示例;-) – strauberry

+1

是你的PHP给出任何警告或错误? – Rufus

+0

没有。我会更新我的问题。请检查出 – heron

回答

0

你的代码看起来像你可以有吨的潜在错误的,这个例子只能告诉你可以做什么总是返回的东西回来这可能是在格式的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"}'; 
} 

?> 
0

你能不能做这样的事情,解析HTML内容仅供即股利的重要内容,而不是整个页面,Mysql的文本数据类型支持2GB,但是它不能安全地重载mysql。

想法1 您是否可以将HTML内容保存在XML中,并将该链接与Mysql Column中的节点一起引用,以便AJAX获取xml和节点以便即时显示数据。

理念2 gzip压缩的内容和存储在MySQL