我有一个问题我不太明白。我将信息从一个表单,通过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不如数据库连接可靠。我会先去那里看看。但是要将两者相互隔离以进行测试。