使用PHP在SQL中编辑或创建时出现定期失败

时间:2011-09-30 10:04:04

标签: php sql

我有一个我无法弄清楚的问题。我正在通过JSON将表单中的信息传输到处理数据库调用的PHP文件 在我的apache服务器上试用它时,75%的时间都能正常运行。最后25%没有任何反应。表单窗口将关闭,页面将重新加载,但信息尚未放入数据库。
在我的域中尝试时,根本没有任何事情发生。但是相同的代码(我有另一个DB_connection文件,带有域信息,适用于其他地方)。

我想查看我的代码,看看我是否犯了一个重大错误。很想让它100%工作。
正如我所说,我有创作和编辑。我将在这里发布编辑表单+ php内容。如果你需要看到创作,请告诉我。

Javascript函数,在按下编辑键时调用(之前将对表单字段执行测试):

function xmlHTTPEdit() {
    var product_ID = document.forms["addForm"]["product_ID"].value;
    var product_Name = document.forms["addForm"]["product_Name"].value;
    var product_Price = parseInt(document.forms["addForm"]["product_Price"].value);
    if(window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            alert(xmlhttp.responseText);
        }
    }
    xmlhttp.open("POST", "../db/productEdit.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("createID=" + product_ID + "&createName=" + product_Name + "&createPrice=" + product_Price);
}

我的php文件,使用新数据更新数据库:

<?php
    include('DB_Connect.php');

    $product_ID = trim($_POST['createID']);
    $product_Name = trim($_POST['createName']);
    $product_Price = trim($_POST['createPrice']);

    $sql = "UPDATE products SET productName = '$product_Name', productPrice = '$product_Price' WHERE productID = '$product_ID'";

    mysql_query($sql);
?>

我真的希望你们中的一些人可以帮我找到我的代码中的这个缺陷,也许可以帮助我解释一下,为什么它有时会在localhost工作,而且永远不会在我的域中工作。

感谢。 / Pyracell

2 个答案:

答案 0 :(得分:0)

它有效的事实有时让我觉得MySQL不满意。由于PHP不再将MySQL错误作为异常抛出,因此您需要手动获取错误。

在查询之后立即调用并回显`mysql_error将显示任何产生的错误,但更合适的生产解决方案是将其记录到文件而不是输出给用户。

答案 1 :(得分:0)

尝试将数据写入文件而不是数据库。 Ajax不如数据库连接稳固。我先看看那里。但要将两者相互隔离进行测试。