2014-07-01 88 views
-1

我有一個具有兩個值的表。MYSQL PHP無法插入或更新具有相同的值

ID,大樓(是建築物的名稱)

我寫與jquery一個代碼中插入或更新建築物的名稱(ⅰ採取從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

像什麼?但如果我在mysql命令行上編寫該查詢,它的工作原理..因此,我的問題是在JS或PHP代碼沒有? – user3703969

+0

這不是一個正確的問題,正如用戶在其自動回答中指出的那樣。 – Pere

回答

-1

我解決了這個問題..

首先我驗證了php代碼的工作原理。

然後我證實問題是js。

我不知道爲什麼,但改變jQuery的函數$ .get在$ .post現在它的工作!

+0

你不知道爲什麼,但是這是由於你使用與腳本期望的方法不同的方法發送表單數據。順便說一下,這與MySQL無關,也與PHP無關。 – Pere

0

MySQL按設計(和其他rdbms)工作。如果您嘗試將值更改爲當前值,則不會拋出任何錯誤,但不會發生任何情況。

你只需要運行

SELECT名字從your_table WHERE idbuilding = $ ID

然後比較名稱爲已經存儲的。如果不同,運行你的UPDATE;如果不是不要做任何事情,因爲不需要採取行動。

+0

很抱歉,我沒有解釋清楚,生病舉個例子。 – user3703969

+0

如果一個值,例如'Building1',我在'Building1' - >'Building2' - >'Building3'中更新它,如果我在'Building1' - >'Building2' - >'Building1'不會更新最後的改變! – user3703969

+0

請做DESCRIBE your_table並在此發佈結果。 – user3741598