我有一个有两个值的表。
ID,Building(是建筑物的名称)
我用jquery编写代码来插入或更新Building的名称(我从list1获取ID值,从text_build获取新名称)
function saveBuilding()
{
alert(document.getElementById("list1").value)
alert(document.getElementById("text_build").value)
$.get("saveBuilding.php",{ID:document.getElementById("list1").value, val:document.getElementById("text_build").value},
function(ret) { alert(ret);});
}
我的saveBuilding是:
<?php
$idbuilding=$_GET['ID'];
$name=$_GET['val'];
require_once '../../../dbconnection.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!db_server) die("Unable to connection_aborted to MySQL: " . mysql_error());
mysql_select_db($db_database) or die ("Unable to connection_aborted to MySQL: " . mysql_error());
$query = "UPDATE Building SET Name = '$name' WHERE ID_Building = '$idbuilding';";
$result = mysql_query($query);
if (mysql_error()) {
echo mysql_error();
}
mysql_close();
?>
现在,如果我使用新值更新值,它会起作用,如果我使用之前已经使用过的值更新值,则表示查询成功但不会改变任何内容。
我尝试通过更改查询来插入新值。结果是一样的。
我也尝试直接从mysql添加这个值,它的工作原理!
所以我的代码中存在哪个问题?
由于
答案 0 :(得分:0)
MySQL正在按设计(和其他rdbms)工作。如果您尝试将值更改为其当前值,则不会引发任何错误,但没有任何反应。
你只需要运行
SELECT Name FROM your_table WHERE idbuilding = $ id
然后将Name与已存储的名称进行比较。如果不同,请运行您的更新;如果没有做任何事情,因为不需要采取任何行动。
答案 1 :(得分:-1)
我解决了这个问题..
首先我确认php代码有效。
然后我验证了问题是js。
我不知道为什么但是改变$ .post中的jquery函数$ .get现在它可以工作!!