使用PHP在SQL中编辑或创建时周期性失败



我有一个问题我不太明白。我将信息从一个表单,通过JSON,到一个PHP文件,这是处理数据库调用。当在我的apache服务器上尝试它时,它的工作时间约为75%。最后的25%什么也没发生。表单窗口将关闭,页面将重新加载,但信息尚未放入DB中。
在我的域尝试时,什么都没有发生。相同的代码虽然(我有另一个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);
?>

我真的希望你们中的一些人可以帮助我找到我的代码中的这个缺陷,也许可以帮助我解释一下,为什么它有时在本地主机上工作,而在我的域上却从来没有。

谢谢。/Pyracell

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

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

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

最新更新