MYSQL PHP无法使用相同的值插入或更新

时间:2014-07-01 18:49:27

标签: php jquery mysql sql sql-update

我有一个有两个值的表。

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添加这个值,它的工作原理!

所以我的代码中存在哪个问题?

由于

2 个答案:

答案 0 :(得分:0)

MySQL正在按设计(和其他rdbms)工作。如果您尝试将值更改为其当前值,则不会引发任何错误,但没有任何反应。

你只需要运行

SELECT Name FROM your_table WHERE idbuilding = $ id

然后将Name与已存储的名称进行比较。如果不同,请运行您的更新;如果没有做任何事情,因为不需要采取任何行动。

答案 1 :(得分:-1)

我解决了这个问题..

首先我确认php代码有效。

然后我验证了问题是js。

我不知道为什么但是改变$ .post中的jquery函数$ .get现在它可以工作!!